CINXE.COM
Official Google Webmaster Central Blog: performance
<!DOCTYPE html> <html class='v2 list-page' dir='ltr' itemscope='' itemtype='http://schema.org/Blog' lang='en-US' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'> <head> <link href='https://www.blogger.com/static/v1/widgets/3566091532-css_bundle_v2.css' rel='stylesheet' type='text/css'/> <title> Official Google Webmaster Central Blog: performance </title> <script type='text/javascript'> var newhost = 'https://developers.google.com'; var target_blog_path = '/search/blog' var target_search_path = '/s/results/search/blog/?q=' var pathname = window.location.pathname if (pathname.startsWith('/search/label/')) { pathname = target_search_path.concat(pathname.slice(14)); } else if (pathname.endsWith('.html')) { pathname = target_blog_path.concat(pathname.slice(0, -5)); } else { pathname = target_blog_path; } var redir_target = newhost.concat(pathname); window.location.href = redir_target; </script> <meta content='evCklrdiBeZ3REnk8pXEV6_6iEdNf1ZLgUpwH9XirGg' name='google-site-verification'/> <meta content='width=device-width, height=device-height, minimum-scale=1.0, initial-scale=1.0, user-scalable=0' name='viewport'/> <meta content='IE=Edge' http-equiv='X-UA-Compatible'/> <meta content='Official Google Webmaster Central Blog' property='og:title'/> <meta content='Official news on crawling and indexing sites for the Google index' property='og:description'/> <meta content='en_US' property='og:locale'/> <meta content='https://webmasters.googleblog.com/search/label/performance' property='og:url'/> <meta content='Official Google Webmaster Central Blog' property='og:site_name'/> <!-- Twitter Card properties --> <meta content='Official Google Webmaster Central Blog' property='og:title'/> <meta content='Official news on crawling and indexing sites for the Google index' property='twitter:description'/> <meta content='summary' name='twitter:card'/> <meta content='@googlewmc' name='twitter:creator'/> <link href='https://fonts.googleapis.com/css?family=Roboto:400italic,400,500,500italic,700,700italic' rel='stylesheet' type='text/css'/> <link href='https://fonts.googleapis.com/icon?family=Material+Icons' rel='stylesheet'/> <script src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js' type='text/javascript'></script> <!-- End --> <style id='page-skin-1' type='text/css'><!-- /* <Group description="Header Color" selector="header"> <Variable name="header.background.color" description="Header Background" type="color" default="#ffffff"/> </Group> */ .header-outer { border-bottom: 1px solid #e0e0e0; background: #ffffff; } html, .Label h2, #sidebar .rss a, .BlogArchive h2, .FollowByEmail h2.title, .widget .post h2 { font-family: Roboto, sans-serif; } .plusfollowers h2.title, .post h2.title, .widget h2.title { font-family: Roboto, sans-serif; } .widget-item-control { height: 100%; } .widget.Header, #header { position: relative; height: 100%; width: 100%; } } .widget.Header .header-logo1 { float: left; margin-right: 15px; padding-right: 15px; border-right: 1px solid #ddd; } .header-title h2 { color: rgba(0,0,0,.54); display: inline-block; font-size: 40px; font-family: Roboto, sans-serif; font-weight: normal; line-height: 48px; vertical-align: top; } .header-inner { background-repeat: no-repeat; background-position: right 0px; } .post-author, .byline-author { font-size: 14px; font-weight: normal; color: #757575; color: rgba(0,0,0,.54); } .post-content .img-border { border: 1px solid rgb(235, 235, 235); padding: 4px; } .header-title a { text-decoration: none !important; } pre { border: 1px solid #bbbbbb; margin-top: 1em 0 0 0; padding: 0.99em; overflow-x: auto; overflow-y: auto; } pre, code { font-size: 9pt; background-color: #fafafa; line-height: 125%; font-family: monospace; } pre, code { color: #060; font: 13px/1.54 "courier new",courier,monospace; } .header-left .header-logo1 { width: 128px !important; } .header-desc { line-height: 20px; margin-top: 8px; } .fb-custom img, .twitter-custom img, .gplus-share img { cursor: pointer; opacity: 0.54; } .fb-custom img:hover, .twitter-custom img:hover, .gplus-share img:hover { opacity: 0.87; } .fb-like { width: 80px; } .post .share { float: right; } #twitter-share{ border: #CCC solid 1px; border-radius: 3px; background-image: -webkit-linear-gradient(top,#ffffff,#dedede); } .twitter-follow { background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgCqNmeVJSIp9EYGk0-d8ScFMrhQri2E5oiIe_wCB-iIf4iefN9xnmLKurx839utT42R76mVmed7FkHd-6nUhw_fEg8XVL_Gn8tamWEtM7QPe7OZcOkWNXN0qSNmnp8qdoYt1KVg/s1600/twitter-bird.png) no-repeat left center; padding-left: 18px; font: normal normal normal 11px/18px 'Helvetica Neue',Arial,sans-serif; font-weight: bold; text-shadow: 0 1px 0 rgba(255,255,255,.5); cursor: pointer; margin-bottom: 10px; } .twitter-fb { padding-top: 2px; } .fb-follow-button { background: -webkit-linear-gradient(#4c69ba, #3b55a0); background: -moz-linear-gradient(#4c69ba, #3b55a0); background: linear-gradient(#4c69ba, #3b55a0); border-radius: 2px; height: 18px; padding: 4px 0 0 3px; width: 57px; border: #4c69ba solid 1px; } .fb-follow-button a { text-decoration: none !important; text-shadow: 0 -1px 0 #354c8c; text-align: center; white-space: nowrap; font-size: 11px; color: white; vertical-align: top; } .fb-follow-button a:visited { color: white; } .fb-follow { padding: 0px 5px 3px 0px; width: 14px; vertical-align: bottom; } .gplus-wrapper { margin-top: 3px; display: inline-block; vertical-align: top; } .twitter-custom, .gplus-share { margin-right: 12px; } .fb-follow-button{ margin: 10px auto; } /** CUSTOM CODE **/ --></style> <style id='template-skin-1' type='text/css'><!-- .header-outer { clear: both; } .header-inner { margin: auto; padding: 0px; } .footer-outer { background: #f5f5f5; clear: both; margin: 0; } .footer-inner { margin: auto; padding: 0px; } .footer-inner-2 { /* Account for right hand column elasticity. */ max-width: calc(100% - 248px); } .google-footer-outer { clear: both; } .cols-wrapper, .google-footer-outer, .footer-inner, .header-inner { max-width: 978px; margin-left: auto; margin-right: auto; } .cols-wrapper { margin: auto; clear: both; margin-top: 60px; margin-bottom: 60px; overflow: hidden; } .col-main-wrapper { float: left; width: 100%; } .col-main { margin-right: 278px; max-width: 660px; } .col-right { float: right; width: 248px; margin-left: -278px; } /* Tweaks for layout mode. */ body#layout .google-footer-outer { display: none; } body#layout .header-outer, body#layout .footer-outer { background: none; } body#layout .header-inner { height: initial; } body#layout .cols-wrapper { margin-top: initial; margin-bottom: initial; } --></style> <!-- start all head --> <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> <meta content='blogger' name='generator'/> <link href='https://webmasters.googleblog.com/favicon.ico' rel='icon' type='image/x-icon'/> <link href='https://webmasters.googleblog.com/search/label/performance' rel='canonical'/> <link rel="alternate" type="application/atom+xml" title="Official Google Webmaster Central Blog - Atom" href="https://webmasters.googleblog.com/feeds/posts/default" /> <link rel="alternate" type="application/rss+xml" title="Official Google Webmaster Central Blog - RSS" href="https://webmasters.googleblog.com/feeds/posts/default?alt=rss" /> <link rel="service.post" type="application/atom+xml" title="Official Google Webmaster Central Blog - Atom" href="https://www.blogger.com/feeds/32069983/posts/default" /> <!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> <meta content='Official news on crawling and indexing sites for the Google index' name='description'/> <meta content='https://webmasters.googleblog.com/search/label/performance' property='og:url'/> <meta content='Official Google Webmaster Central Blog' property='og:title'/> <meta content='Official news on crawling and indexing sites for the Google index' property='og:description'/> <!-- end all head --> <base target='_self'/> <style> html { font-family: Roboto, sans-serif; -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; } body { padding: 0; /* This ensures that the scroll bar is always present, which is needed */ /* because content render happens after page load; otherwise the header */ /* would "bounce" in-between states. */ min-height: 150%; } h2 { font-size: 16px; } h1, h2, h3, h4, h5 { line-height: 2em; } html, h4, h5, h6 { font-size: 14px; } a, a:visited { color: #4184F3; text-decoration: none; } a:focus, a:hover, a:active { text-decoration: none; } .Header { margin-top: 15px; } .Header h1 { font-size: 32px; font-weight: 300; line-height: 32px; height: 42px; } .header-inner .Header .titlewrapper { padding: 0; margin-top: 30px; } .header-inner .Header .descriptionwrapper { padding: 0; margin: 0; } .cols-wrapper { margin-top: 56px; } .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 60px; } .header-inner { height: 256px; position: relative; } html, .header-inner a { color: #212121; color: rgba(0,0,0,.87); } .header-inner .google-logo { display: inline-block; background-size: contain; z-index: 1; height: 46px; overflow: hidden; margin-top: 4px; margin-right: 8px; } .header-left { position: absolute; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); margin-top: 12px; width: 100%; } .google-logo { margin-left: -4px; } #google-footer { position: relative; font-size: 13px; list-style: none; text-align: right; } #google-footer a { color: #444; } #google-footer ul { margin: 0; padding: 0; height: 144px; line-height: 144px; } #google-footer ul li { display: inline; } #google-footer ul li:before { color: #999; content: "\00b7"; font-weight: bold; margin: 5px; } #google-footer ul li:first-child:before { content: ''; } #google-footer .google-logo-dark { left: 0; margin-top: -16px; position: absolute; top: 50%; } /** Sitemap links. **/ .footer-inner-2 { font-size: 14px; padding-top: 42px; padding-bottom: 74px; } .footer-inner-2 .HTML h2 { color: #212121; color: rgba(0,0,0,.87); font-size: 14px; font-weight: 500; padding-left: 0; margin: 10px 0; } .footer-inner-2 .HTML ul { font-weight: normal; list-style: none; padding-left: 0; } .footer-inner-2 .HTML li { line-height: 24px; padding: 0; } .footer-inner-2 li a { color: rgba(65,132,243,.87); } /** Archive widget. **/ .BlogArchive { font-size: 13px; font-weight: normal; } .BlogArchive .widget-content { display: none; } .BlogArchive h2, .Label h2 { color: #4184F3; text-decoration: none; } .BlogArchive .hierarchy li { display: inline-block; } /* Specificity needed here to override widget CSS defaults. */ .BlogArchive #ArchiveList ul li, .BlogArchive #ArchiveList ul ul li { margin: 0; padding-left: 0; text-indent: 0; } .BlogArchive .intervalToggle { cursor: pointer; } .BlogArchive .expanded .intervalToggle .new-toggle { -ms-transform: rotate(180deg); transform: rotate(180deg); } .BlogArchive .new-toggle { float: right; padding-top: 3px; opacity: 0.87; } #ArchiveList { text-transform: uppercase; } #ArchiveList .expanded > ul:last-child { margin-bottom: 16px; } #ArchiveList .archivedate { width: 100%; } /* Months */ .BlogArchive .items { max-width: 150px; margin-left: -4px; } .BlogArchive .expanded .items { margin-bottom: 10px; overflow: hidden; } .BlogArchive .items > ul { float: left; height: 32px; } .BlogArchive .items a { padding: 0 4px; } .Label { font-size: 13px; font-weight: normal; } .sidebar-icon { display: inline-block; width: 24px; height: 24px; vertical-align: middle; margin-right: 12px; margin-top: -1px } .Label a { margin-right: 4px; } .Label .widget-content { display: none; } .FollowByEmail { font-size: 13px; font-weight: normal; } .FollowByEmail h2 { background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUBJREFUeNrMkSGLAlEUhb+ZB4JFi8mx2cz+ApvhRUGTcUCrNqNJDYIi+DO0GUwmQXDK2DSIoGgZcSaIjDrzwrK4ssvChj1w0733O+fdp+m6PozH4yQSCfb7Pa7r8pOi0SjJZBLP8zgej4gAIMvlMuPxmADIYrHger1+C6lUKmo+NJ/NZojb7SZDWiwWo1qtks1msW2bw+HwZdkwDHq9HvV6nel0SqvVYrvdIh6Ph3Qch+VyqRYLhQJSSjRNw7IsfN9XgGKxSLfbJZfL0e/3aTabrFYr7vc7IujLcOh8PqunrNdr0uk0pVKJVCpFJBJRgEajweVyod1uMxgM2O12BAGUgRbU8DV2JpOhVquRz+cRQii3+XxOp9NRN3jVR5LPOp1OjEYjlSL8hclkgmmabDabt4d+m+S30vkD/R/IU4ABAPTZgnZdmG/PAAAAAElFTkSuQmCC"); background-repeat: no-repeat; background-position: 0 50%; text-indent: 30px; } .FollowByEmail .widget-content { display: none; } .searchBox input { border: 1px solid #eee; color: #212121; color: rgba(0,0,0,.87); font-size: 14px; padding: 8px 8px 8px 40px; width: 164px; font-family: Roboto, sans-serif; background: url("https://www.gstatic.com/images/icons/material/system/1x/search_grey600_24dp.png") 8px center no-repeat; } .searchBox ::-webkit-input-placeholder { /* WebKit, Blink, Edge */ color: rgba(0,0,0,.54); } .searchBox :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #000; opacity: 0.54; } .searchBox ::-moz-placeholder { /* Mozilla Firefox 19+ */ color: #000; opacity: 0.54; } .searchBox :-ms-input-placeholder { /* Internet Explorer 10-11 */ color: #757575; } .widget-item-control { margin-top: 0px; } .section { margin: 0; padding: 0; } #sidebar-top { border: 1px solid #eee; } #sidebar-top > div { margin: 16px 0; } .widget ul { line-height: 1.6; } /*main post*/ .post { margin-bottom:30px; } #main .post .title { margin: 0; } #main .post .title a { color: #212121; color: rgba(0,0,0,.87); font-weight: normal; font-size: 24px; } #main .post .title a:hover { text-decoration:none; color:#4184F3; } .message, #main .post .post-header { margin: 0; padding: 0; } #main .post .post-header .caption, #main .post .post-header .labels-caption, #main .post .post-footer .caption, #main .post .post-footer .labels-caption { color: #444; font-weight: 500; } #main .tr-caption-container td { text-align: left; } #main .post .tr-caption { color: #757575; color: rgba(0,0,0,.54); display: block; max-width: 560px; padding-bottom: 20px; } #main .post .tr-caption-container { line-height: 24px; margin: -1px 0 0 0 !important; padding: 4px 0; text-align: left; } #main .post .post-header .published{ font-size:11px; font-weight:bold; } .post-header .publishdate { font-size: 17px; font-weight:normal; color: #757575; color: rgba(0,0,0,.54); } #main .post .post-footer{ font-size:12px; padding-bottom: 21px; } .label-footer { margin-bottom: 12px; margin-top: 12px; } .comment-img { margin-right: 16px; opacity: 0.54; vertical-align: middle; } #main .post .post-header .published { margin-bottom: 40px; margin-top: -2px; } .post .post-content { color: #212121; color: rgba(0,0,0,.87); font-size: 17px; margin: 25px 0 36px 0; line-height: 32px; } .post-body .post-content ul, .post-body .post-content ol { margin: 16px 0; padding: 0 48px; } .post-summary { display: none; } /* Another old-style caption. */ .post-content div i, .post-content div + i { font-size: 14px; font-style: normal; color: #757575; color: rgba(0,0,0,.54); display: block; line-height: 24px; margin-bottom: 16px; text-align: left; } /* Another old-style caption (with link) */ .post-content a > i { color: #4184F3 !important; } /* Old-style captions for images. */ .post-content .separator + div:not(.separator) { margin-top: -16px; } /* Capture section headers. */ .post-content br + br + b, .post-content .space + .space + b, .post-content .separator + b { display: inline-block; margin-bottom: 8px; margin-top: 24px; } .post-content li { line-height: 32px; } /* Override all post images/videos to left align. */ .post-content .separator, .post-content > div { text-align: left; } .post-content .separator > a, .post-content .separator > span { margin-left: 0 !important; } .post-content img { max-width: 100%; height: auto; width: auto; } .post-content .tr-caption-container img { margin-bottom: 12px; } .post-content iframe, .post-content embed { max-width: 100%; } .post-content .carousel-container { margin-bottom: 48px; } #main .post-content b { font-weight: 500; } /* These are the main paragraph spacing tweaks. */ #main .post-content br { content: ' '; display: block; padding: 4px; } .post-content .space { display: block; height: 8px; } .post-content iframe + .space, .post-content iframe + br { padding: 0 !important; } #main .post .jump-link { margin-bottom:10px; } .post-content img, .post-content iframe { margin: 30px 0 20px 0; } .post-content > img:first-child, .post-content > iframe:first-child { margin-top: 0; } .col-right .section { padding: 0 16px; } #aside { background:#fff; border:1px solid #eee; border-top: 0; } #aside .widget { margin:0; } #aside .widget h2, #ArchiveList .toggle + a.post-count-link { color: #212121; color: rgba(0,0,0,.87); font-weight: 400 !important; margin: 0; } #ArchiveList .toggle { float: right; } #ArchiveList .toggle .material-icons { padding-top: 4px; } #sidebar .tab { cursor: pointer; } #sidebar .tab .arrow { display: inline-block; float: right; } #sidebar .tab .icon { display: inline-block; vertical-align: top; height: 24px; width: 24px; margin-right: 13px; margin-left: -1px; margin-top: 1px; color: #757575; color: rgba(0,0,0,.54); } #sidebar .widget-content > :first-child { padding-top: 8px; } #sidebar .active .tab .arrow { -ms-transform: rotate(180deg); transform: rotate(180deg); } #sidebar .arrow { color: #757575; color: rgba(0,0,0,.54); } #sidebar .widget h2 { font-size: 14px; line-height: 24px; display: inline-block; } #sidebar .widget .BlogArchive { padding-bottom: 8px; } #sidebar .widget { border-bottom: 1px solid #eee; box-shadow: 0px 1px 0 white; margin-bottom: 0; padding: 14px 0; min-height: 20px; } #sidebar .widget:last-child { border-bottom: none; box-shadow: none; margin-bottom: 0; } #sidebar ul { margin: 0; padding: 0; } #sidebar ul li { list-style:none; padding:0; } #sidebar ul li a { line-height: 32px; } #sidebar .archive { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAYAAADzoH0MAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAE1JREFUeNpiNDY23s9AAWBioBCwYBM8c+YMVsUmJibEGYBNMS5DaeMFfDYSZQA2v9I3FrB5AZeriI4FmnrBccCT8mhmGs1MwyAzAQQYAKEWG9zm9QFEAAAAAElFTkSuQmCC"); height: 24px; line-height: 24px; padding-left: 30px; } #sidebar .labels { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUxJREFUeNpiNDY23s9AAMycOfM7UF05kHkZmzwTMkdSUhKrIcXFxZy3bt3qBjIN8RrS09PDsHnzZjCNDr58+cKQlpbGDjSoHcg1w2oIyAUODg5gARCNzUVIBrUCuVYYhjx//pzhwIEDYAEQDeJjA1CDWIAGNQK59jBxRuSABbkAlwHIgIeHh2HWrFn/1NTU2oDcvSgBS4wBSC5iArqoCsj1YGIgEyAZVMoEchqlBjEB/cZAiUHg2AEGznpKDAImxOeM////B4VLKtBvEUCngZ1ILKivr3/u6+ubBzJAGZQ9gC5aQoqLgAY8BhkAZL4BuQQkxgXE34A4BuiiZEIuAhrwEGhAEZD5DpzYoIaA2UAM4kQADUrHZRDUgAIg8wO2XAwzbQXQa5OweQ1owB10AyA6gS7BgX1u3ry5397eHow3bdo0EyjGi00tQIABANPgyAH1q1eaAAAAAElFTkSuQmCC"); height: 20px; line-height: 20px; padding-left: 30px; } #sidebar .rss a { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAX5JREFUeNqsVDGSgkAQHL2rIiIikohIc/EBRkbwAIwuwgfwAXiAD9AHSI7kEkECRCb6AIyINDLx7K0aa6kT7uq0q7YYtnZ7umdnt7darXbr9Zpegeu61DNNc0dvwCcH4/GYJpMJnc9nOhwOVJbl/4hAAokMECZJQtvt9k+kH7qufyEYDAakqqqYxFdRFBqNRmTbNg2HQ0rTlK7XayvR0xqBdDqdkuM4dE/0ULhYLOh4PHYrknG5XGi/31MYhuL/nkwonM1mlGUZ1XXdrsiyLGEDhY7juJEZ1u5tIixDGdYhmYw+B7CAzPP5nDabjdgIAgCksMX1832/3drtdqPT6SQWapomiGEFNkDEdpDMMAzK81ys/7XYy+XyoQgq2WoURSIJ2iIIgp/WZCCTvFm2wgeAU31aI3Q2GhIDMeB53qPYPIcm5VrxXIOIOxsDMStjVawAc1VViRgN22lNBiuQN3GR+SY07hpOoStmFQAKXRRFY93bnpG+fONfedi+BRgAbkS8Fxp7QQIAAAAASUVORK5CYII="); } #sidebar .subscription a { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAALCAYAAACZIGYHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUBJREFUeNrMkSGLAlEUhb+ZB4JFi8mx2cz+ApvhRUGTcUCrNqNJDYIi+DO0GUwmQXDK2DSIoGgZcSaIjDrzwrK4ssvChj1w0733O+fdp+m6PozH4yQSCfb7Pa7r8pOi0SjJZBLP8zgej4gAIMvlMuPxmADIYrHger1+C6lUKmo+NJ/NZojb7SZDWiwWo1qtks1msW2bw+HwZdkwDHq9HvV6nel0SqvVYrvdIh6Ph3Qch+VyqRYLhQJSSjRNw7IsfN9XgGKxSLfbJZfL0e/3aTabrFYr7vc7IujLcOh8PqunrNdr0uk0pVKJVCpFJBJRgEajweVyod1uMxgM2O12BAGUgRbU8DV2JpOhVquRz+cRQii3+XxOp9NRN3jVR5LPOp1OjEYjlSL8hclkgmmabDabt4d+m+S30vkD/R/IU4ABAPTZgnZdmG/PAAAAAElFTkSuQmCC"); } #sidebar-bottom { background: #f5f5f5; border-top:1px solid #eee; } #sidebar-bottom .widget { border-bottom: 1px solid #e0e0e0; padding: 15px 0; text-align: center; } #sidebar-bottom > div:last-child { border-bottom: 0; } #sidebar-bottom .text { line-height: 20px; } /* Home, forward, and backward pagination. */ .blog-pager { border-top : 1px #e0e0e0 solid; padding-top: 10px; margin-top: 15px; text-align: right !important; } #blog-pager { margin-botom: 0; margin-top: -14px; padding: 16px 0 0 0; } #blog-pager a { display: inline-block; } .blog-pager i.disabled { opacity: 0.2 !important; } .blog-pager i { color: black; margin-left: 16px; opacity: 0.54; } .blog-pager i:hover, .blog-pager i:active { opacity: 0.87; } #blog-pager-older-link, #blog-pager-newer-link { float: none; } .gplus-profile { background-color: #fafafa; border: 1px solid #eee; overflow: hidden; width: 212px; } .gplus-profile-inner { margin-left: -1px; margin-top: -1px; } /* Sidebar follow buttons. */ .followgooglewrapper { padding: 12px 0 0 0; } .loading { visibility: hidden; } .detail-page .post-footer .cmt_iframe_holder { padding-top: 40px !important; } /** Desktop **/ @media (max-width: 900px) { .col-right { display: none; } .col-main { margin-right: 0; min-width: initial; } .footer-outer { display: none; } .cols-wrapper { min-width: initial; } .google-footer-outer { background-color: #f5f5f5; } } /** Tablet **/ @media (max-width: 712px) { .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 40px; } } /* An extra breakpoint accommodating for long blog titles. */ @media (max-width: 600px) { .header-left { height: 100%; top: inherit; margin-top: 0; -webkit-transform: initial; transform: initial; } .header-title { margin-top: 18px; } .header-inner .google-logo { height: 40px; margin-top: 3px; } .header-inner .google-logo img { height: 42px; } .header-title h2 { font-size: 32px; line-height: 40px; } .header-desc { bottom: 24px; position: absolute; } } /** Mobile/small desktop window; also landscape. **/ @media (max-width: 480px), (max-height: 480px) { .header-outer, .cols-wrapper, .footer-outer, .google-footer-outer { padding: 0 16px; } .cols-wrapper { margin-top: 0; } .post-header .publishdate, .post .post-content { font-size: 16px; } .post .post-content { line-height: 28px; margin-bottom: 30px; } .post { margin-top: 30px; } .byline-author { display: block; font-size: 12px; line-height: 24px; margin-top: 6px; } #main .post .title a { font-weight: 500; color: #4c4c4c; color: rgba(0,0,0,.70); } #main .post .post-header { padding-bottom: 12px; } #main .post .post-header .published { margin-bottom: -8px; margin-top: 3px; } .post .read-more { display: block; margin-top: 14px; } .post .tr-caption { font-size: 12px; } #main .post .title a { font-size: 20px; line-height: 30px; } .post-content iframe { /* iframe won't keep aspect ratio when scaled down. */ max-height: 240px; } .post-content .separator img, .post-content .tr-caption-container img, .post-content iframe { margin-left: -16px; max-width: inherit; width: calc(100% + 32px); } .post-content table, .post-content td { width: 100%; } #blog-pager { margin: 0; padding: 16px 0; } /** List page tweaks. **/ .list-page .post-original { display: none; } .list-page .post-summary { display: block; } .list-page .comment-container { display: none; } .list-page #blog-pager { padding-top: 0; border: 0; margin-top: -8px; } .list-page .label-footer { display: none; } .list-page #main .post .post-footer { border-bottom: 1px solid #eee; margin: -16px 0 0 0; padding: 0 0 20px 0; } .list-page .post .share { display: none; } /** Detail page tweaks. **/ .detail-page .post-footer .cmt_iframe_holder { padding-top: 32px !important; } .detail-page .label-footer { margin-bottom: 0; } .detail-page #main .post .post-footer { padding-bottom: 0; } .detail-page #comments { display: none; } } [data-about-pullquote], [data-is-preview], [data-about-syndication] { display: none; } </style> <noscript> <style> .loading { visibility: visible }</style> </noscript> <script type='text/javascript'> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-18009-4', 'auto', 'blogger'); ga('blogger.send', 'pageview'); </script> <link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=32069983&zx=8855dad6-3029-4476-9a6a-423344a04200' media='none' onload='if(media!='all')media='all'' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=32069983&zx=8855dad6-3029-4476-9a6a-423344a04200' rel='stylesheet'/></noscript> <meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> <meta name='google-adsense-platform-domain' content='blogspot.com'/> </head> <body> <script type='text/javascript'> //<![CDATA[ var axel = Math.random() + ""; var a = axel * 10000000000000; document.write('<iframe src="https://2542116.fls.doubleclick.net/activityi;src=2542116;type=gblog;cat=googl0;ord=ord=' + a + '?" width="1" height="1" frameborder="0" style="display:none"></iframe>'); //]]> </script> <noscript> <img alt='' height='1' src='https://ad.doubleclick.net/ddm/activity/src=2542116;type=gblog;cat=googl0;ord=1?' width='1'/> </noscript> <!-- Header --> <div class='header-outer'> <div class='header-inner'> <div class='section' id='header'><div class='widget Header' data-version='1' id='Header1'> <div class='header-left'> <div class='header-title'> <a class='google-logo' href='https://webmasters.googleblog.com/?hl=en_US'> <img height='50' src='https://www.gstatic.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png'/> </a> <a href='/'> <h2> Webmaster Central Blog </h2> </a> </div> <div class='header-desc'> Official news on crawling and indexing sites for the Google index </div> </div> </div></div> </div> </div> <!-- all content wrapper start --> <div class='cols-wrapper loading'> <div class='col-main-wrapper'> <div class='col-main'> <div class='section' id='main'><div class='widget Blog' data-version='1' id='Blog1'> <div class='post' data-id='777432884342387906' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2019/05/io-2019-sessions-webmasters-SEOs.html?hl=en_US' itemprop='url' title='Google I/O 2019 - What sessions should SEOs and webmasters watch?'> Google I/O 2019 - What sessions should SEOs and webmasters watch? </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, May 06, 2019 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> <a href="https://events.google.com/io/" target="_blank">Google I/O 2019</a> is starting tomorrow and will run for 3 days, until Thursday. Google I/O is our yearly developers festival, where product announcements are made, new APIs and frameworks are introduced, and Product Managers present the latest from Google to an audience of 7,000+ developers who fly to California.<br /> <br /> However, you don't have to physically attend the event to take advantage of this once-a-year opportunity: many conferences and talks are live streamed on YouTube for anyone to watch. Browse the <a href="https://events.google.com/io/schedule" target="_blank">full schedule of events</a>, including a list of talks that we think will be interesting for webmasters to watch (all talks are in English). All the links shared below will bring you to pages with more details about each talk, and links to watch the sessions will display on the day of each event. All times are Pacific Central time <b>(California time)</b>.<br /> <br /> <br /> <ul style="text-align: left;"> <li><b><u>Tuesday, May 7th</u></b><br /><br /><b>4pm</b> - <a href="https://events.google.com/io/schedule/events/50bbf64a-1cc4-4169-b91b-1b124b769d07" target="_blank">Building Successful Websites: Case Studies for Mature and Emerging Markets</a>, with Aancha Bahadur, Charlie Croom, Matt Doyle, Rudra Kasturi, and Jesar Shah</li> <br /><br /> <li><b><u>Wednesday, May 8th</u><br /><br />10.30am</b> - <a href="https://events.google.com/io/schedule/events/40a400cf-aa8d-4510-8491-07d1e0248f06" target="_blank">Enhance Your Search and Assistant Presence with Structured Data</a>, with Aylin Altiok and Will Leszczuk<br /><br /><b>11.30am</b> - <a href="https://events.google.com/io/schedule/events/1bbd42a2-3ba3-4b99-88da-48474fc3bb91" target="_blank">Create App-like Experiences on Google Search and the Google Assistant</a>, with Allen Harvey<br /><br /><b>11.30am</b> - <a href="https://events.google.com/io/schedule/events/5311d3a8-03b4-4ae7-ba22-a3990ef1913a" target="_blank">Rapidly Building Better Web Experiences with AMP</a>, with Adam Greenberg and Naina Raisinghani<br /><br /><b>6.30pm</b> - <a href="https://events.google.com/io/schedule/events/7e886111-34a3-4920-ae73-7e13e5bafc0f" target="_blank">Unlocking New Capabilities for the Web</a>, with Pete LePage and Thomas Steiner</li> <br /><br /> <li><b><u>Thursday, May 9th</u></b><br /><br /><b>10.30am</b> - <a href="https://events.google.com/io/schedule/events/280ec615-7a63-420a-9e74-05428da072f9" target="_blank">Google Search: State of the Union</a>, with John Mueller and Martin Splitt<br /><br /><b>1.30pm</b> - <a href="https://events.google.com/io/schedule/events/da7ca544-1260-4940-88c6-e74dbf49a80a" target="_blank">Google Search and JavaScript Sites</a>, with Zoe Clifford and Martin Splitt</li> </ul> <div> <br /></div> <div> <div> This list is only a small part of the agenda that we think is useful to webmasters and SEOs. There are many more sessions that you could find interesting! To learn about those other talks, check out the <a href="https://events.google.com/io/schedule/events/?2=topic_web" target="_blank">full list of “web” sessions</a>, <a href="https://events.google.com/io/schedule/events/?2=topic_design" target="_blank">design sessions</a>, <a href="https://events.google.com/io/schedule/events/?2=topic_cloud" target="_blank">Cloud sessions</a>, <a href="https://events.google.com/io/schedule/events/?2=topic_mlai" target="_blank">machine learning sessions</a>, and more. Use the filtering function to toggle the sessions on and off.</div> <div> <br /></div> <div> We hope you can make the time to watch the talks online, and participate in the excitement of I/O ! The videos will also be available on Youtube after the event, in case you can't tune in live.</div> </div> <div> <br /></div> <div> <i><span style="color: #666666;">Posted by Vincent Courson, Search Outreach Specialist</span></i></div> </div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> <a href="https://events.google.com/io/" target="_blank">Google I/O 2019</a> is starting tomorrow and will run for 3 days, until Thursday. Google I/O is our yearly developers festival, where product announcements are made, new APIs and frameworks are introduced, and Product Managers present the latest from Google to an audience of 7,000+ developers who fly to California.<br /> <br /> However, you don't have to physically attend the event to take advantage of this once-a-year opportunity: many conferences and talks are live streamed on YouTube for anyone to watch. Browse the <a href="https://events.google.com/io/schedule" target="_blank">full schedule of events</a>, including a list of talks that we think will be interesting for webmasters to watch (all talks are in English). All the links shared below will bring you to pages with more details about each talk, and links to watch the sessions will display on the day of each event. All times are Pacific Central time <b>(California time)</b>.<br /> <br /> <br /> <ul style="text-align: left;"> <li><b><u>Tuesday, May 7th</u></b><br /><br /><b>4pm</b> - <a href="https://events.google.com/io/schedule/events/50bbf64a-1cc4-4169-b91b-1b124b769d07" target="_blank">Building Successful Websites: Case Studies for Mature and Emerging Markets</a>, with Aancha Bahadur, Charlie Croom, Matt Doyle, Rudra Kasturi, and Jesar Shah</li> <br /><br /> <li><b><u>Wednesday, May 8th</u><br /><br />10.30am</b> - <a href="https://events.google.com/io/schedule/events/40a400cf-aa8d-4510-8491-07d1e0248f06" target="_blank">Enhance Your Search and Assistant Presence with Structured Data</a>, with Aylin Altiok and Will Leszczuk<br /><br /><b>11.30am</b> - <a href="https://events.google.com/io/schedule/events/1bbd42a2-3ba3-4b99-88da-48474fc3bb91" target="_blank">Create App-like Experiences on Google Search and the Google Assistant</a>, with Allen Harvey<br /><br /><b>11.30am</b> - <a href="https://events.google.com/io/schedule/events/5311d3a8-03b4-4ae7-ba22-a3990ef1913a" target="_blank">Rapidly Building Better Web Experiences with AMP</a>, with Adam Greenberg and Naina Raisinghani<br /><br /><b>6.30pm</b> - <a href="https://events.google.com/io/schedule/events/7e886111-34a3-4920-ae73-7e13e5bafc0f" target="_blank">Unlocking New Capabilities for the Web</a>, with Pete LePage and Thomas Steiner</li> <br /><br /> <li><b><u>Thursday, May 9th</u></b><br /><br /><b>10.30am</b> - <a href="https://events.google.com/io/schedule/events/280ec615-7a63-420a-9e74-05428da072f9" target="_blank">Google Search: State of the Union</a>, with John Mueller and Martin Splitt<br /><br /><b>1.30pm</b> - <a href="https://events.google.com/io/schedule/events/da7ca544-1260-4940-88c6-e74dbf49a80a" target="_blank">Google Search and JavaScript Sites</a>, with Zoe Clifford and Martin Splitt</li> </ul> <div> <br /></div> <div> <div> This list is only a small part of the agenda that we think is useful to webmasters and SEOs. There are many more sessions that you could find interesting! To learn about those other talks, check out the <a href="https://events.google.com/io/schedule/events/?2=topic_web" target="_blank">full list of “web” sessions</a>, <a href="https://events.google.com/io/schedule/events/?2=topic_design" target="_blank">design sessions</a>, <a href="https://events.google.com/io/schedule/events/?2=topic_cloud" target="_blank">Cloud sessions</a>, <a href="https://events.google.com/io/schedule/events/?2=topic_mlai" target="_blank">machine learning sessions</a>, and more. Use the filtering function to toggle the sessions on and off.</div> <div> <br /></div> <div> We hope you can make the time to watch the talks online, and participate in the excitement of I/O ! The videos will also be available on Youtube after the event, in case you can't tune in live.</div> </div> <div> <br /></div> <div> <i><span style="color: #666666;">Posted by Vincent Courson, Search Outreach Specialist</span></i></div> </div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Google I/O 2019 - What sessions should SEOs and webmasters watch?&url=https://webmasters.googleblog.com/2019/05/io-2019-sessions-webmasters-SEOs.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2019/05/io-2019-sessions-webmasters-SEOs.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2019/05/io-2019-sessions-webmasters-SEOs.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/AMP?hl=en_US' rel='tag'> AMP </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/crawling%20and%20indexing?hl=en_US' rel='tag'> crawling and indexing </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/Google%20I%2FO?hl=en_US' rel='tag'> Google I/O </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/javascript?hl=en_US' rel='tag'> javascript </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/structured%20data?hl=en_US' rel='tag'> structured data </a> </span> </div> </div> </div> <div class='post' data-id='4784551626083621006' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2019/04/user-experience-improvements-with-page.html?hl=en_US' itemprop='url' title='User experience improvements with page speed in mobile search'> User experience improvements with page speed in mobile search </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, April 04, 2019 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p>To help users find the answers to their questions faster, we included <a href="https://webmasters.googleblog.com/2018/01/using-page-speed-in-mobile-search.html">page speed</a> as a ranking factor for mobile searches in 2018. Since then, we've observed improvements on many pages across the web. We want to recognize the performance improvements webmasters have made over the past year. A few highlights:</p> <ul><li>For the slowest one-third of traffic, we saw <a href="https://developers.google.com/web/fundamentals/performance/user-centric-performance-metrics">user-centric performance metrics</a> improve by 15% to 20% in 2018. As a comparison, no improvement was seen in 2017.</li> <li>We observed improvements across the whole web ecosystem. On a per country basis, more than 95% of countries had improved speeds.</li> <li>When a page is slow to load, users are more likely to abandon the navigation. Thanks to these speed improvements, we've observed a 20% reduction in abandonment rate for navigations initiated from Search, a metric that site owners can now also measure via the <a href="https://w3c.github.io/network-error-logging/">Network Error Logging API</a> available <a href="https://developers.google.com/web/updates/2018/09/reportingapi#nel">in Chrome</a>.</li> <li>In 2018, developers ran over a billion <a href="https://developers.google.com/speed/pagespeed/insights/">PageSpeed Insights</a> audits to identify performance optimization opportunities for over 200 million unique urls.</li></ul> <p>Great work and thank you! We encourage all webmasters to optimize their sites’ user experience. If you're unsure how your pages are performing, the following tools and documents can be useful:</p> <ol><li><a href="https://developers.google.com/speed/pagespeed/insights/">PageSpeed Insights</a> provides page analysis and optimization recommendations.</li> <li>Google <a href="https://developers.google.com/web/tools/chrome-user-experience-report/">Chrome User Experience Report</a> provides the user experience metrics for how real-world Chrome users experience popular destinations on the web.</li> <li>Documentation on <a href="https://developers.google.com/web/fundamentals/performance/why-performance-matters/">performance on Web Fundamentals</a>. </li> </ol> <p>For any questions, feel free to drop by our help forums (like the <a href="https://support.google.com/webmasters/community">webmaster community</a>) to chat with other experts.</p> <br> <span class="byline-author">Posted by Genqing Wu and Doantam Phan</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p>To help users find the answers to their questions faster, we included <a href="https://webmasters.googleblog.com/2018/01/using-page-speed-in-mobile-search.html">page speed</a> as a ranking factor for mobile searches in 2018. Since then, we've observed improvements on many pages across the web. We want to recognize the performance improvements webmasters have made over the past year. A few highlights:</p> <ul><li>For the slowest one-third of traffic, we saw <a href="https://developers.google.com/web/fundamentals/performance/user-centric-performance-metrics">user-centric performance metrics</a> improve by 15% to 20% in 2018. As a comparison, no improvement was seen in 2017.</li> <li>We observed improvements across the whole web ecosystem. On a per country basis, more than 95% of countries had improved speeds.</li> <li>When a page is slow to load, users are more likely to abandon the navigation. Thanks to these speed improvements, we've observed a 20% reduction in abandonment rate for navigations initiated from Search, a metric that site owners can now also measure via the <a href="https://w3c.github.io/network-error-logging/">Network Error Logging API</a> available <a href="https://developers.google.com/web/updates/2018/09/reportingapi#nel">in Chrome</a>.</li> <li>In 2018, developers ran over a billion <a href="https://developers.google.com/speed/pagespeed/insights/">PageSpeed Insights</a> audits to identify performance optimization opportunities for over 200 million unique urls.</li></ul> <p>Great work and thank you! We encourage all webmasters to optimize their sites’ user experience. If you're unsure how your pages are performing, the following tools and documents can be useful:</p> <ol><li><a href="https://developers.google.com/speed/pagespeed/insights/">PageSpeed Insights</a> provides page analysis and optimization recommendations.</li> <li>Google <a href="https://developers.google.com/web/tools/chrome-user-experience-report/">Chrome User Experience Report</a> provides the user experience metrics for how real-world Chrome users experience popular destinations on the web.</li> <li>Documentation on <a href="https://developers.google.com/web/fundamentals/performance/why-performance-matters/">performance on Web Fundamentals</a>. </li> </ol> <p>For any questions, feel free to drop by our help forums (like the <a href="https://support.google.com/webmasters/community">webmaster community</a>) to chat with other experts.</p> <br> <span class="byline-author">Posted by Genqing Wu and Doantam Phan</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:User experience improvements with page speed in mobile search&url=https://webmasters.googleblog.com/2019/04/user-experience-improvements-with-page.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2019/04/user-experience-improvements-with-page.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2019/04/user-experience-improvements-with-page.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/mobile?hl=en_US' rel='tag'> mobile </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/mobile-friendly?hl=en_US' rel='tag'> mobile-friendly </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/speed?hl=en_US' rel='tag'> speed </a> </span> </div> </div> </div> <div class='post' data-id='5043170892468867247' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2018/05/google-io-2018-sessions-SEOs.html?hl=en_US' itemprop='url' title='Google I/O 2018 - What sessions should SEOs and Webmasters watch live ?'> Google I/O 2018 - What sessions should SEOs and Webmasters watch live ? </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Tuesday, May 08, 2018 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> <a href="https://events.google.com/io/" target="_blank">Google I/O 2018</a> is starting today in California, to an international audience of 7,000+ developers. It will run until Thursday night. It is our annual developers festival, where product announcements are made, new APIs and frameworks are introduced, and Product Managers present the latest from Google.<br /> <br /> However, you don't have to physically attend the event to take advantage of this once-a-year opportunity: many conferences and talks are live streamed on YouTube for anyone to watch. You will find the full-event schedule <a href="https://events.google.com/io/schedule" target="_blank">here</a>.<br /> <div> <br /></div> <div> <div> Dozens upon dozens of talks will take place over the next 3 days. We have hand picked the talks that we think will be the most interesting for webmasters and SEO professionals. Each link shared will bring you to pages with more details about each talk, and you will find out how to tune in to the live stream. All times are California time (PCT). We might add other sessions to this list.</div> <div> <br /></div> </div> <div> <br /></div> <div> <div> <b>Tuesday, May 8th</b></div> <div> <br /> <ul style="text-align: left;"> <li><b>3pm</b> - Web Security post Spectre/Meltdown, with Emily Schechter and Chris Palmer - <a href="https://events.google.com/io/schedule/?section=may-8&sid=cc6ef17f-243c-451b-9e18-a50bdf959158&topic=web" target="_blank">more info</a>.</li> <li><b>5pm</b> - Dru Knox and Stephan Somogyi talk about building a seamless web with Chrome - <a href="https://events.google.com/io/schedule/?section=may-8&sid=f4839672-8ab3-49be-ba2b-df5be6ff908f&topic=web" target="_blank">more info</a>.</li> </ul> </div> <div> <br /></div> </div> <div> <br /></div> <div> <div> <b>Wednesday, May 9th</b></div> <div> <br /> <ul style="text-align: left;"> <li><b>9.30am</b> - Ewa Gasperowicz and Addy Osmani talk about Web Performance and increasing control over the loading experience - <a href="https://events.google.com/io/schedule/?section=may-8&sid=5ca0e495-8409-4279-a4d9-8b5306e75e62&topic=web" target="_blank">more info</a>.</li> <li><b>10.30am</b> - Alberto Medina and Thierry Muller will explain how to make a WordPress site progressive - <a href="https://events.google.com/io/schedule/?section=may-8&sid=8735be7c-d42d-4fab-abfe-69e48a624261&topic=web" target="_blank">more info</a>.</li> <li><b>11.30am</b> - Rob Dodson and Dominic Mazzoni will cover "What's new in web accessibility" - <a href="https://events.google.com/io/schedule/?section=may-8&sid=851d5519-9bd8-4431-aa2e-fca6c1e41dd3&topic=web" target="_blank">more info</a>.</li> <li><b>3.30pm</b> - Michael Bleigh will introduce how to leverage AMP in Firebase for a blazing fast website - <a href="https://events.google.com/io/schedule/?section=may-8&sid=d93e965b-3896-4923-8e57-84914fcee763&topic=web" target="_blank">more info</a>.</li> <li><b>4.30pm</b> - Rick Viscomi and Vinamrata Singal will introduce the latest with Lighthouse and Chrome UX Report for Web Performance - <a href="https://events.google.com/io/schedule/?section=may-8&sid=2524b9ad-2777-4b3c-951d-4b8accedfd53&topic=web" target="_blank">more info</a>.</li> </ul> </div> <div> <br /></div> <div> <br /></div> <div> <div> <b>Thursday, May 10th</b></div> <div> <br /> <ul style="text-align: left;"> <li><b>8.30am</b> - John Mueller and Tom Greenaway will talk about building Search-friendly JavaScript websites - <a href="https://events.google.com/io/schedule/?section=may-10&sid=e8a0d2f7-1eb2-4dc9-a69c-3f28d460b61f" target="_blank">more info</a>.</li> <li><b>9.30am</b> - Build e-commerce sites for the modern web with AMP, PWA, and more, with Adam Greenberg and Rowan Merewood - <a href="https://events.google.com/io/schedule/?section=may-8&sid=90159532-d4bd-4a46-97c5-77ecac04b246&topic=web" target="_blank">more info</a>.</li> <li><b>12.30pm</b> - Session on "Building a successful web presence with Google Search" by John Mueller and Mariya Moeva - <a href="https://events.google.com/io/schedule/?section=may-8&sid=844d803c-ce5b-4dd6-a918-c8fbd95611ac&topic=web" target="_blank">more info</a>.</li> </ul> </div> <div> <br /> <br /></div> </div> </div> <div> <div> This list is only a sample of the content at this year's Google I/O, and there might be many more that are interesting to you! To find out about those other talks, check out the <a href="https://events.google.com/io/schedule?section=may-8&topic=web&type=sessions" target="_blank">full list of web sessions</a>, but also the <a href="https://events.google.com/io/schedule?section=may-8&topic=design" target="_blank">sessions about Design</a>, the <a href="https://events.google.com/io/schedule?section=may-8&topic=cloud" target="_blank">Cloud sessions</a>, the <a href="https://events.google.com/io/schedule?section=may-8&topic=machinelearning%26ai&type=sessions" target="_blank">machine learning sessions</a>, and more… </div> <div> <br /></div> </div> <div> <div> We hope you can make the time to watch the talks online, and participate in the excitement of I/O ! The videos will also be available on Youtube after the event, in case you can't tune in live.</div> <div> <br /></div> </div> <div> <div> <br /></div> <div> <span style="color: #666666;">Posted by <a href="https://twitter.com/VincentCourson" target="_blank">Vincent Courson</a>, Search Outreach Specialist, and the Google Webmasters team</span></div> <div> <br /></div> </div> </div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> <a href="https://events.google.com/io/" target="_blank">Google I/O 2018</a> is starting today in California, to an international audience of 7,000+ developers. It will run until Thursday night. It is our annual developers festival, where product announcements are made, new APIs and frameworks are introduced, and Product Managers present the latest from Google.<br /> <br /> However, you don't have to physically attend the event to take advantage of this once-a-year opportunity: many conferences and talks are live streamed on YouTube for anyone to watch. You will find the full-event schedule <a href="https://events.google.com/io/schedule" target="_blank">here</a>.<br /> <div> <br /></div> <div> <div> Dozens upon dozens of talks will take place over the next 3 days. We have hand picked the talks that we think will be the most interesting for webmasters and SEO professionals. Each link shared will bring you to pages with more details about each talk, and you will find out how to tune in to the live stream. All times are California time (PCT). We might add other sessions to this list.</div> <div> <br /></div> </div> <div> <br /></div> <div> <div> <b>Tuesday, May 8th</b></div> <div> <br /> <ul style="text-align: left;"> <li><b>3pm</b> - Web Security post Spectre/Meltdown, with Emily Schechter and Chris Palmer - <a href="https://events.google.com/io/schedule/?section=may-8&sid=cc6ef17f-243c-451b-9e18-a50bdf959158&topic=web" target="_blank">more info</a>.</li> <li><b>5pm</b> - Dru Knox and Stephan Somogyi talk about building a seamless web with Chrome - <a href="https://events.google.com/io/schedule/?section=may-8&sid=f4839672-8ab3-49be-ba2b-df5be6ff908f&topic=web" target="_blank">more info</a>.</li> </ul> </div> <div> <br /></div> </div> <div> <br /></div> <div> <div> <b>Wednesday, May 9th</b></div> <div> <br /> <ul style="text-align: left;"> <li><b>9.30am</b> - Ewa Gasperowicz and Addy Osmani talk about Web Performance and increasing control over the loading experience - <a href="https://events.google.com/io/schedule/?section=may-8&sid=5ca0e495-8409-4279-a4d9-8b5306e75e62&topic=web" target="_blank">more info</a>.</li> <li><b>10.30am</b> - Alberto Medina and Thierry Muller will explain how to make a WordPress site progressive - <a href="https://events.google.com/io/schedule/?section=may-8&sid=8735be7c-d42d-4fab-abfe-69e48a624261&topic=web" target="_blank">more info</a>.</li> <li><b>11.30am</b> - Rob Dodson and Dominic Mazzoni will cover "What's new in web accessibility" - <a href="https://events.google.com/io/schedule/?section=may-8&sid=851d5519-9bd8-4431-aa2e-fca6c1e41dd3&topic=web" target="_blank">more info</a>.</li> <li><b>3.30pm</b> - Michael Bleigh will introduce how to leverage AMP in Firebase for a blazing fast website - <a href="https://events.google.com/io/schedule/?section=may-8&sid=d93e965b-3896-4923-8e57-84914fcee763&topic=web" target="_blank">more info</a>.</li> <li><b>4.30pm</b> - Rick Viscomi and Vinamrata Singal will introduce the latest with Lighthouse and Chrome UX Report for Web Performance - <a href="https://events.google.com/io/schedule/?section=may-8&sid=2524b9ad-2777-4b3c-951d-4b8accedfd53&topic=web" target="_blank">more info</a>.</li> </ul> </div> <div> <br /></div> <div> <br /></div> <div> <div> <b>Thursday, May 10th</b></div> <div> <br /> <ul style="text-align: left;"> <li><b>8.30am</b> - John Mueller and Tom Greenaway will talk about building Search-friendly JavaScript websites - <a href="https://events.google.com/io/schedule/?section=may-10&sid=e8a0d2f7-1eb2-4dc9-a69c-3f28d460b61f" target="_blank">more info</a>.</li> <li><b>9.30am</b> - Build e-commerce sites for the modern web with AMP, PWA, and more, with Adam Greenberg and Rowan Merewood - <a href="https://events.google.com/io/schedule/?section=may-8&sid=90159532-d4bd-4a46-97c5-77ecac04b246&topic=web" target="_blank">more info</a>.</li> <li><b>12.30pm</b> - Session on "Building a successful web presence with Google Search" by John Mueller and Mariya Moeva - <a href="https://events.google.com/io/schedule/?section=may-8&sid=844d803c-ce5b-4dd6-a918-c8fbd95611ac&topic=web" target="_blank">more info</a>.</li> </ul> </div> <div> <br /> <br /></div> </div> </div> <div> <div> This list is only a sample of the content at this year's Google I/O, and there might be many more that are interesting to you! To find out about those other talks, check out the <a href="https://events.google.com/io/schedule?section=may-8&topic=web&type=sessions" target="_blank">full list of web sessions</a>, but also the <a href="https://events.google.com/io/schedule?section=may-8&topic=design" target="_blank">sessions about Design</a>, the <a href="https://events.google.com/io/schedule?section=may-8&topic=cloud" target="_blank">Cloud sessions</a>, the <a href="https://events.google.com/io/schedule?section=may-8&topic=machinelearning%26ai&type=sessions" target="_blank">machine learning sessions</a>, and more… </div> <div> <br /></div> </div> <div> <div> We hope you can make the time to watch the talks online, and participate in the excitement of I/O ! The videos will also be available on Youtube after the event, in case you can't tune in live.</div> <div> <br /></div> </div> <div> <div> <br /></div> <div> <span style="color: #666666;">Posted by <a href="https://twitter.com/VincentCourson" target="_blank">Vincent Courson</a>, Search Outreach Specialist, and the Google Webmasters team</span></div> <div> <br /></div> </div> </div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Google I/O 2018 - What sessions should SEOs and Webmasters watch live ?&url=https://webmasters.googleblog.com/2018/05/google-io-2018-sessions-SEOs.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2018/05/google-io-2018-sessions-SEOs.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2018/05/google-io-2018-sessions-SEOs.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/AMP?hl=en_US' rel='tag'> AMP </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/crawling%20and%20indexing?hl=en_US' rel='tag'> crawling and indexing </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/events?hl=en_US' rel='tag'> events </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/javascript?hl=en_US' rel='tag'> javascript </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/mobile?hl=en_US' rel='tag'> mobile </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/security?hl=en_US' rel='tag'> security </a> </span> </div> </div> </div> <div class='post' data-id='1067798282650461359' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2018/02/seo-audit-category-in-lighthouse.html?hl=en_US' itemprop='url' title='Launching SEO Audit category in Lighthouse Chrome extension'> Launching SEO Audit category in Lighthouse Chrome extension </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, February 05, 2018 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> <br /> We're happy to announce that we are introducing another audit category to the Lighthouse Chrome Extension: SEO Audits. <br /> <br /> <a href="https://developers.google.com/web/tools/lighthouse/">Lighthouse</a> is an open-source, automated auditing tool for improving the quality of web pages. It provides a well-lit path for improving the quality of sites by allowing developers to run audits for performance, accessibility, progressive web apps compatibility and more. Basically, it "keeps you from crashing into the rocks", hence the name Lighthouse. <br /> <br /> The SEO audit category within Lighthouse enables developers and webmasters to run a basic SEO health-check for any web page that identifies potential areas for improvement. Lighthouse runs locally in your Chrome browser, enabling you to run the SEO audits on pages in a staging environment as well as on live pages, public pages and pages that require authentication.<br /> <br /> <b>Bringing SEO best practices to you</b><br /> <br /> The current list of SEO audits is not an exhaustive list, nor does it make any SEO guarantees for Google websearch or other search engines. The current list of audits was designed to validate and reflect the SEO basics that every site should get right, and provides detailed guidance to developers and SEO practitioners of all skill levels. In the future, we hope to add more and more in-depth audits and guidance — let us know if you have suggestions for specific audits you'd like to see! <br /> <br /> <b>How to use it</b><br /> <br /> Currently there are two ways to run these audits. <br /> <br /> <div> <div style="text-align: center;"> <b>Using the Lighthouse Chrome Extension:</b></div> <br /> <ol style="text-align: left;"> <li>Install the <a href="https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk?hl=en">Lighthouse Chrome Extension</a></li> <li>Click on the Lighthouse icon in the extension bar </li> <li>Select the <b>Options</b> menu, tick “SEO” and click <b>OK</b>, then <b>Generate report</b></li> </ol> <div style="text-align: center;"> <img src="https://lh5.googleusercontent.com/IHRerx79iZHymUT-8hZpeP9GQfpwcRO6_2IetSd4P6KFSPSfI7zkPaFak2pnPGRXiwtJ3OO1Ht2EUc2ldHS3wl8KvZ598d-RDygz5xr-UOOGjNN8rPxQeKvi4lpIYanEaDa1mtrvFCHxOMMIpA" /></div> <br /> <div style="text-align: center;"> <span style="color: #666666;"><span style="font-size: x-small;">Running SEO Audits in Lighthouse extension</span></span></div> <br /> <div style="text-align: center;"> <b><br /></b></div> <div style="text-align: center;"> <b>Using Chrome Developer tools on <a href="https://www.google.com/chrome/browser/canary.html">Chrome Canary</a>:</b></div> <ol style="text-align: left;"> <li>Open Chrome Developer Tools </li> <li>Go to <b>Audits</b> </li> <li>Click <b>Perform an audit</b> </li> <li>Tick the “SEO” checkbox and click <b>Run Audit</b>. </li> </ol> <div style="text-align: center;"> <img src="https://lh6.googleusercontent.com/EGXf_1kletwpX4HvBtP3qXtfDJZXuy5UKmRVt4mTz2-34LKrbZt4NsrRywsft083PFfpl7bS9PMQgABuazBuE1I_S4hac6UgjkQLOKX_CyZSV3sjAzlNpVfEltm0DiNdao0hgH_9FCsbDEvVJA" /></div> <br /> <div style="text-align: center;"> <span style="color: #666666; font-size: x-small;">Running SEO Audits in Chrome Canary</span></div> <br /> The current <a href="https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk">Lighthouse Chrome extension</a> contains an initial set of SEO audits which we’re planning to extend and enhance in the future. Once we're confident of its functionality, we’ll make the audits available by default in the stable release of Chrome Developer Tools. <br /> <br /> We hope you find this functionality useful for your current and future projects. If these basic SEO tips are totally new to you and you find yourself interested in this area, make sure to read our complete <a href="https://support.google.com/webmasters/answer/7451184">SEO starter-guide</a>! Leave your feedback and suggestions in the comments section below, on <a href="https://github.com/GoogleChrome/lighthouse">GitHub</a> or on our Webmaster <a href="https://productforums.google.com/forum/#!forum/webmasters">forum</a>. <br /> <br /> Happy auditing! <br /> <br /> Posted by Valentyn, Webmaster Outreach Strategist. </div> </div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> <br /> We're happy to announce that we are introducing another audit category to the Lighthouse Chrome Extension: SEO Audits. <br /> <br /> <a href="https://developers.google.com/web/tools/lighthouse/">Lighthouse</a> is an open-source, automated auditing tool for improving the quality of web pages. It provides a well-lit path for improving the quality of sites by allowing developers to run audits for performance, accessibility, progressive web apps compatibility and more. Basically, it "keeps you from crashing into the rocks", hence the name Lighthouse. <br /> <br /> The SEO audit category within Lighthouse enables developers and webmasters to run a basic SEO health-check for any web page that identifies potential areas for improvement. Lighthouse runs locally in your Chrome browser, enabling you to run the SEO audits on pages in a staging environment as well as on live pages, public pages and pages that require authentication.<br /> <br /> <b>Bringing SEO best practices to you</b><br /> <br /> The current list of SEO audits is not an exhaustive list, nor does it make any SEO guarantees for Google websearch or other search engines. The current list of audits was designed to validate and reflect the SEO basics that every site should get right, and provides detailed guidance to developers and SEO practitioners of all skill levels. In the future, we hope to add more and more in-depth audits and guidance — let us know if you have suggestions for specific audits you'd like to see! <br /> <br /> <b>How to use it</b><br /> <br /> Currently there are two ways to run these audits. <br /> <br /> <div> <div style="text-align: center;"> <b>Using the Lighthouse Chrome Extension:</b></div> <br /> <ol style="text-align: left;"> <li>Install the <a href="https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk?hl=en">Lighthouse Chrome Extension</a></li> <li>Click on the Lighthouse icon in the extension bar </li> <li>Select the <b>Options</b> menu, tick “SEO” and click <b>OK</b>, then <b>Generate report</b></li> </ol> <div style="text-align: center;"> <img src="https://lh5.googleusercontent.com/IHRerx79iZHymUT-8hZpeP9GQfpwcRO6_2IetSd4P6KFSPSfI7zkPaFak2pnPGRXiwtJ3OO1Ht2EUc2ldHS3wl8KvZ598d-RDygz5xr-UOOGjNN8rPxQeKvi4lpIYanEaDa1mtrvFCHxOMMIpA" /></div> <br /> <div style="text-align: center;"> <span style="color: #666666;"><span style="font-size: x-small;">Running SEO Audits in Lighthouse extension</span></span></div> <br /> <div style="text-align: center;"> <b><br /></b></div> <div style="text-align: center;"> <b>Using Chrome Developer tools on <a href="https://www.google.com/chrome/browser/canary.html">Chrome Canary</a>:</b></div> <ol style="text-align: left;"> <li>Open Chrome Developer Tools </li> <li>Go to <b>Audits</b> </li> <li>Click <b>Perform an audit</b> </li> <li>Tick the “SEO” checkbox and click <b>Run Audit</b>. </li> </ol> <div style="text-align: center;"> <img src="https://lh6.googleusercontent.com/EGXf_1kletwpX4HvBtP3qXtfDJZXuy5UKmRVt4mTz2-34LKrbZt4NsrRywsft083PFfpl7bS9PMQgABuazBuE1I_S4hac6UgjkQLOKX_CyZSV3sjAzlNpVfEltm0DiNdao0hgH_9FCsbDEvVJA" /></div> <br /> <div style="text-align: center;"> <span style="color: #666666; font-size: x-small;">Running SEO Audits in Chrome Canary</span></div> <br /> The current <a href="https://chrome.google.com/webstore/detail/lighthouse/blipmdconlkpinefehnmjammfjpmpbjk">Lighthouse Chrome extension</a> contains an initial set of SEO audits which we’re planning to extend and enhance in the future. Once we're confident of its functionality, we’ll make the audits available by default in the stable release of Chrome Developer Tools. <br /> <br /> We hope you find this functionality useful for your current and future projects. If these basic SEO tips are totally new to you and you find yourself interested in this area, make sure to read our complete <a href="https://support.google.com/webmasters/answer/7451184">SEO starter-guide</a>! Leave your feedback and suggestions in the comments section below, on <a href="https://github.com/GoogleChrome/lighthouse">GitHub</a> or on our Webmaster <a href="https://productforums.google.com/forum/#!forum/webmasters">forum</a>. <br /> <br /> Happy auditing! <br /> <br /> Posted by Valentyn, Webmaster Outreach Strategist. </div> </div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Launching SEO Audit category in Lighthouse Chrome extension&url=https://webmasters.googleblog.com/2018/02/seo-audit-category-in-lighthouse.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2018/02/seo-audit-category-in-lighthouse.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2018/02/seo-audit-category-in-lighthouse.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/products%20and%20services?hl=en_US' rel='tag'> products and services </a> </span> </div> </div> </div> <div class='post' data-id='1797041529782499189' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2018/01/using-page-speed-in-mobile-search.html?hl=en_US' itemprop='url' title='Using page speed in mobile search ranking'> Using page speed in mobile search ranking </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, January 17, 2018 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p><i>Update July 9, 2018: The Speed Update is now rolling out for all users.</i></p> <p>People want to be able to find answers to their questions as fast as possible — <a href="https://www.thinkwithgoogle.com/marketing-resources/data-measurement/mobile-page-speed-industry-benchmarks/">studies</a> show that people really care about the speed of a page. Although speed has been used in ranking for some time, that <a href="https://webmasters.googleblog.com/2010/04/using-site-speed-in-web-search-ranking.html">signal</a> was focused on desktop searches. Today we’re announcing that starting in July 2018, page speed will be a ranking factor for mobile searches.</p> <p>The “Speed Update,” as we’re calling it, will only affect pages that deliver the slowest experience to users and will only affect a small percentage of queries. It applies the same standard to all pages, regardless of the technology used to build the page. The intent of the search query is still a very strong signal, so a slow page may still rank highly if it has great, relevant content.</p> <p>We encourage developers to think broadly about how <a href="https://developers.google.com/web/fundamentals/performance/rail">performance</a> affects a user’s experience of their page and to consider a variety of <a href="https://developers.google.com/web/updates/2017/06/user-centric-performance-metrics">user experience metrics</a>. Although there is no tool that directly indicates whether a page is affected by this new ranking factor, here are some resources that can be used to evaluate a page’s performance. </p> <ul><li><a href="https://developers.google.com/web/tools/chrome-user-experience-report/">Chrome User Experience Report</a>, a public dataset of key user experience metrics for popular destinations on the web, as experienced by Chrome users under real-world conditions</li> <li><a href="https://developers.google.com/web/tools/lighthouse/">Lighthouse</a>, an automated tool and a part of Chrome Developer Tools for auditing the quality (performance, accessibility, and more) of web pages</li> <li><a href="https://developers.google.com/speed/pagespeed/insights/">PageSpeed Insights</a>, a tool that indicates how well a page performs on the Chrome UX Report and suggests performance optimizations</li></ul> <p>As always, if you have any questions or feedback, please visit our <a href="https://productforums.google.com/forum/#!forum/webmasters">webmaster forums</a>. </p> <span class="byline-author">Posted by Zhiheng Wang and Doantam Phan</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p><i>Update July 9, 2018: The Speed Update is now rolling out for all users.</i></p> <p>People want to be able to find answers to their questions as fast as possible — <a href="https://www.thinkwithgoogle.com/marketing-resources/data-measurement/mobile-page-speed-industry-benchmarks/">studies</a> show that people really care about the speed of a page. Although speed has been used in ranking for some time, that <a href="https://webmasters.googleblog.com/2010/04/using-site-speed-in-web-search-ranking.html">signal</a> was focused on desktop searches. Today we’re announcing that starting in July 2018, page speed will be a ranking factor for mobile searches.</p> <p>The “Speed Update,” as we’re calling it, will only affect pages that deliver the slowest experience to users and will only affect a small percentage of queries. It applies the same standard to all pages, regardless of the technology used to build the page. The intent of the search query is still a very strong signal, so a slow page may still rank highly if it has great, relevant content.</p> <p>We encourage developers to think broadly about how <a href="https://developers.google.com/web/fundamentals/performance/rail">performance</a> affects a user’s experience of their page and to consider a variety of <a href="https://developers.google.com/web/updates/2017/06/user-centric-performance-metrics">user experience metrics</a>. Although there is no tool that directly indicates whether a page is affected by this new ranking factor, here are some resources that can be used to evaluate a page’s performance. </p> <ul><li><a href="https://developers.google.com/web/tools/chrome-user-experience-report/">Chrome User Experience Report</a>, a public dataset of key user experience metrics for popular destinations on the web, as experienced by Chrome users under real-world conditions</li> <li><a href="https://developers.google.com/web/tools/lighthouse/">Lighthouse</a>, an automated tool and a part of Chrome Developer Tools for auditing the quality (performance, accessibility, and more) of web pages</li> <li><a href="https://developers.google.com/speed/pagespeed/insights/">PageSpeed Insights</a>, a tool that indicates how well a page performs on the Chrome UX Report and suggests performance optimizations</li></ul> <p>As always, if you have any questions or feedback, please visit our <a href="https://productforums.google.com/forum/#!forum/webmasters">webmaster forums</a>. </p> <span class="byline-author">Posted by Zhiheng Wang and Doantam Phan</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Using page speed in mobile search ranking&url=https://webmasters.googleblog.com/2018/01/using-page-speed-in-mobile-search.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2018/01/using-page-speed-in-mobile-search.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2018/01/using-page-speed-in-mobile-search.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/mobile?hl=en_US' rel='tag'> mobile </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/search%20results?hl=en_US' rel='tag'> search results </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/speed?hl=en_US' rel='tag'> speed </a> </span> </div> </div> </div> <div class='post' data-id='156979147313381852' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2016/11/building-indexable-progressive-web-apps.html?hl=en_US' itemprop='url' title='Building Indexable Progressive Web Apps'> Building Indexable Progressive Web Apps </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, November 09, 2016 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p><a href="https://developers.google.com/web/progressive-web-apps/">Progressive Web Apps</a> (PWAs) are taking advantage of new technologies to bring the best of mobile sites and native applications to users -- and they’re one of the most exciting new ideas on the web. But to truly have an impact, it's important that they’re indexable and linkable. Every recommendation presented in this article is an existing best practice for indexability -- regardless of whether you're building a Progressive Web App or a simple static website. Nonetheless, we have collated these best practices to provide a checklist to guide you:</p> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVgVKTQB5hnuptyyfnJ8YRWMJk_CXL0Vn86oYlbVeLDI1tE68GM71kiK6izDCUdzwLhP-q301t-IhnZNrjrDGqvnhpxPon62wyCZXM2Gj00kN6sy8qP9uLk7raNh9CQrHcssG1/s1600/pwa_roadshow_summit.JPG" imageanchor="1" ><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVgVKTQB5hnuptyyfnJ8YRWMJk_CXL0Vn86oYlbVeLDI1tE68GM71kiK6izDCUdzwLhP-q301t-IhnZNrjrDGqvnhpxPon62wyCZXM2Gj00kN6sy8qP9uLk7raNh9CQrHcssG1/s400/pwa_roadshow_summit.JPG" width="400" /></a> <h3>Make Your Content Crawlable</h3> <p><b>Why?</b> Historically, websites would always generate or render their HTML on the server which is the simplest way to ensure your content is directly linkable. Web applications popularised the concept of client-side rendering in which content is updated dynamically on the page as the users navigates without requiring the page to be reloaded.</p> <p>The modern approach is hybrid rendering, in which server-side rendering is used when a user navigates directly to a URL and client-side rendering is used after the initial page load for subsequent navigation and asynchronous requests.</p> <p>Our <a href="https://server-dot-indexable-pwa.appspot.com">server-side PWA sample</a> demonstrates pure server-side rendering, while our <a href="https://hybrid-dot-indexable-pwa.appspot.com">hybrid PWA sample</a> demonstrates the combined approach.</p> <p>If you are unfamiliar with the <b>server-side</b> and <b>client-side</b> rendering terminology, check out these articles on the web read <a href="http://openmymind.net/2012/5/30/Client-Side-vs-Server-Side-Rendering/">here</a> and <a href="https://www.smashingmagazine.com/2016/03/server-side-rendering-react-node-express/">here.</a></p> <style> .boxbox { width: 100%; word-wrap:break-word; padding: 0.2em; } .badbox { background-color: #eba; } .goodbox { background-color: #ded; } .avoidbox { background-color: #ffd; } .boxbox h5 { font-size: 1em; font-weight: bold; margin: 0;} .boxbox p { margin-top: 0.6em; margin-bottom: 0.6em; } br.endboxen { clear: both; } h3.subhead { margin-top: 2em; } </style> <!-- yeah, maybe not https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiDo1cnZ20Nt74nTxpmAjsKzuyLRYZ1Y6NDJGNceOHckDhGdGJJCkXduzty3nNFmIOHYEVrY0RQF-WGQ2yjshYSqRU1HrGC2UiLhPT_AQ212KJlR-joBSC-Xy_3-nPltMFHVL0/s1600/css.gif <style> .boxbox { float:left; min-width: 31%; max-width: 300px; word-wrap:break-word; padding: 0.2em;} .badbox { background-color: #eba; } .goodbox { background-color: #ded; } .avoidbox { background-color: #ffd; } .boxbox h5 { font-size: 1em; font-weight: bold; margin: 0.5em 0;} br.endboxen { clear: both; } </style> --> <!-- <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>box</p> </div> <div class="boxbox avoidbox"> <h5>Avoid:</h5> <p>box</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>box</p> </div> <br class="endboxen" /> --> <div class="boxbox goodbox"> <h5 class="subhead">Best Practice:</h5> <p>Use server-side or hybrid rendering so users receive the content in the initial payload of their web request.</p> <p>Always ensure your URLs are independently accessible:</p> <p>https://www.example.com/product/25/</p> <p>The above should deep link to that particular resource.</p> <p>If you can’t support server-side or hybrid rendering for your Progressive Web App and you decide to use client-side rendering, we recommend using the Google Search Console “Fetch as Google tool” to verify your content successfully renders for our search crawler.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Don't redirect users accessing deep links back to your web app's homepage.</p> <p>Additionally, serving an error page to users instead of deep linking should also be avoided.</p> </div> <br class="endboxen" /> <h3 class="subhead">Provide Clean URLs</h3> <p><b>Why?</b> Fragment identifiers (#user/24601/ or #!user/24601/) were an effective workaround for browsers to AJAX new content from a server without reloading the page. This design is known as client-side rendering.</p> <p>However, the fragment identifier syntax isn’t compatible with some web tools, frameworks and protocols such as <a href="http://ogp.me/">Facebook’s Open Graph protocol</a>.</p> <p>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/History_API">History API</a> enables us to update the URL without fragment identifiers while still fetching resources asynchronously and therefore avoiding page reloads -- it’s the best of both worlds. The AJAX crawling scheme (with its #! / escaped-fragment URLs) made sense at its time, but is now no longer recommended. </p> <p>Our <a href="https://hybrid-dot-indexable-pwa.appspot.com">hybrid PWA</a> and <a href="https://client-dot-indexable-pwa.appspot.com">client-side PWA samples</a> demonstrate the History API.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Provide clean URLs without fragment identifiers (# or #!) such as:</p> <p>https://www.example.com/product/25/</p> <p>If using client-side or hybrid rendering be sure to support browser navigation with the History API.</p> </div> <div class="boxbox avoidbox"> <h5>Avoid:</h5> <p>Using the #! URL structure to drive unique URLs is discouraged:</p> <p>https://www.example.com/#!product/25/</p> <p>It was introduced as a workaround before the advent of the History API. It is considered a separate pattern to the purely # URL structure.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Using the # URL structure without the accompanying ! symbol is unsupported:</p> <p>https://www.example.com/#product/25/</p> <p>This URL structure is already a concept in the web and relates to deep linking into content on a particular page.</p> </div> <br class="endboxen" /> <h3 class="subhead">Specify Canonical URLs</h3> <p><b>Why?</b> The best way to eliminate confusion for indexing when the same content is available under multiple URLs (be it the same or different domains) is to mark one page as the canonical, and all other pages that duplicate that content to refer to it.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Include the following tag across all pages mirroring a particular piece of content:</p> <p><pre><link rel="canonical" href="https://www.example.com/your-url/" /></pre></p> <p>If you are supporting Accelerated Mobile Pages be sure to correctly use its counterpart rel=”amphtml” instruction as well.</p> </div> <div class="boxbox avoidbox"> <h5>Avoid:</h5> <p>Avoid purposely duplicating content across multiple URLs and not using the rel="canonical" link element.</p> <p>For example, the rel="canonical" link element can reduce ambiguity for URLs with tracking parameters.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Avoid creating conflicting canonical references between your pages.</p> </div> <br class="endboxen" /> <h3 class="subhead">Design for Multiple Devices</h3> <p><b>Why?</b> It’s important that all your users get the best experience possible when viewing your website, regardless of their device. </p> <p>Make your site <a href="https://developers.google.com/web/fundamentals/design-and-ui/responsive/fundamentals/?hl=en">responsive in its design</a> -- fonts, margins, paddings, buttons and general design of your site should scale dynamically based on screen resolutions and device viewports. </p> <p>Small images scaled up for desktop or tablet devices give a poor experience. Conversely, super high resolution images take a long time to download on mobile phones and may impact mobile scroll performance.</p> <p>Read more <a href="https://medium.com/@owencm/designing-great-uis-for-progressive-web-apps-dd38c1d20f7#.c0avg96qb">UX for PWAs here</a>.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Use <a href="https://developers.google.com/web/fundamentals/design-and-ui/media/images/images-in-markup?hl=en">“srcset” attribute</a> to fetch different resolution images for different density screens to avoid downloading images larger than the device’s screen is capable of displaying.</p> <p>Scale your font size and line height to ensure your text is legible no matter the size of the device. Similarly ensure the padding and margins of elements also scale sensibly.</p> <p>Test <a href="https://developers.google.com/web/tools/chrome-devtools/iterate/device-mode/emulate-mobile-viewports?hl=en">various screen resolutions</a> using the <a href="https://developers.google.com/web/tools/chrome-devtools/iterate/device-mode/?hl=en">Chrome Developer Tool’s Device Mode</a> feature and <a href="https://search.google.com/search-console/mobile-friendly">Mobile Friendly Test tool</a>.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Don't show different content to users than you show to Google. If you use <a href="https://support.google.com/webmasters/answer/2604723?hl=en">redirects or user agent detection</a> (a.k.a. browser sniffing or <a href="https://developers.google.com/webmasters/mobile-sites/mobile-seo/dynamic-serving?hl=en">dynamic serving</a>) to alter the design of your site for different devices it’s important that the content itself remains the same.</p> <p>Use the Search Console “Fetch as Google” tool to verify the content fetched by Google matches the content a user sees.</p> <p>For usability reasons, avoid using fixed-size fonts.</p> </div> <br style="clear: both" /> <h3 class="subhead">Develop Iteratively</h3> <p><b>Why?</b> One of the safest paths to take when adding features to a web application is to make changes iteratively. If you add features one at a time you can observe the impact of each individual change.</p> <p>Alternatively many developers prefer to view their progressive web application as an opportunity to overhaul their mobile site in one fell swoop -- developing the new web app in an isolated environment and swapping it with their existing mobile site once ready.</p> <p>When developing features iteratively try to break the changes into separate pieces. For example, if you intend to move from server-side rendering to hybrid rendering then tackle that as a single iteration -- rather than in combination with other features.</p> <p>Both approaches have their own pros and cons. Iterating reduces the complexity of dealing with search indexability as the transition is continuous. However, iterating might result in a slower development process and potentially a less innovative overhaul if development is not starting from scratch.</p> <p>In either case, the most sensitive areas to keep an eye on are your canonical URLs and your site’s robots.txt configuration.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Iterate on your website incrementally by adding new features piece by piece.</p> <p>For example, if don’t support HTTPS yet then start by migrating to a secure site.</p> </div> <div class="boxbox avoidbox"> <h5>Avoid:</h5> <p>If you’ve developed your progressive web app in an isolated environment, then avoid launching it without checking the rel-canonical links and robots.txt are setup appropriately.</p> <p>Ensure your rel-canonical links point to the real site and that your robots.txt configuration allows crawlers to crawl your new site.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>It’s logical to prevent crawlers from indexing your in-development site before launch but don’t forget to unblock crawlers from accessing your new site when you launch.</p> </div> <br class="endboxen" /> <h3 class="subhead">Use Progressive Enhancement</h3> <p><b>Why?</b> Wherever possible it’s important to detect browser features before using them. Feature detection is also better than testing for browsers that you believe support a given feature.</p> <p>A common bad practice in the past was to enable or disable features by testing which browser the user had. However, as browsers are constantly evolving with features this technique is strongly discouraged.</p> <p>Service Worker is a relatively new technology and it’s important to not break compatibility in the pursuit of progress -- it's a perfect example of when to use progressive enhancement.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Before registering a Service Worker check for the availability of its API:</p> <p><pre>if ('serviceWorker' in navigator) { ... </pre> <p>Use per API detection method for all your website’s features.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Never use the browser’s user agent to enable or disable features in your web app. Always check whether the feature’s API is available and gracefully degrade if unavailable.</p> <p>Avoid updating or launching your site without testing across multiple browsers! Check your site analytics to learn which browsers are most popular among your user base.</p> </div> <br class="endboxen" /> <h3 class="subhead">Test with Search Console</h3> <p><b>Why?</b> It’s important to understand how Google Search views your site’s content. You can use <a href="https://www.google.com/webmasters/tools/home?hl=en">Search Console</a> to <a href="https://support.google.com/webmasters/answer/6066468?hl=en">fetch individual URLs from your site</a> and see how Google Search views them using the “Crawl > Fetch as Google“ feature. Search Console will process your JavaScript and render the page when that option is selected; otherwise only the raw HTML response is shown </p> <p>Google Search Console also analyses the content on your page in a variety of ways including detecting the presence of Structured Data, Rich Cards, Sitelinks & Accelerated Mobile Pages.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Monitor your site using Search Console and explore its features including “Fetch as Google”.</p> <p>Provide a Sitemap via Search Console “Crawl > Sitemaps” It can be an effective way to ensure Google Search is aware of all your site’s pages.</p> </div> <br class="endboxen" /> <h3 class="subhead">Annotate with Schema.org structured data</h3> <p><b>Why?</b> <a href="https://schema.org/">Schema.org</a> structured data is a flexible vocabulary for summarizing the most important parts of your page as machine-processable data. This can be as general as simply saying that a page is a NewsArticle, or as specific as detailing the location, band name, venue and ticket vendor for a touring band, or summarizing the ingredients and steps for a recipe.</p> <p>The use of this metadata may not make sense for every page on your web application but it’s recommended where it’s sensible. Google extracts it after the page is rendered.</p> <p>There are a variety of data types including “NewsArticle”, “Recipe” & “Product” to name a few. Explore all the <a href="https://developers.google.com/search/docs/data-types/data-type-selector">supported data types here</a>.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Verify that your Schema.org meta data is correct using Google’s <a href="https://search.google.com/structured-data/testing-tool/">Structured Data Testing Tool</a>.</p> <p>Check that the data you provided is appearing and there are no errors present.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Avoid using a data type that doesn’t match your page’s actual content. For example don’t use “Recipe” for a T-Shirt you’re selling -- use “Product” instead.</p> </div> <br class="endboxen" /> <h3 class="subhead">Annotate with Open Graph & Twitter Cards</h3> <p><b>Why?</b> In addition to the Schema.org metadata it can be helpful to add support for Facebook’s Open Graph protocol and Twitter rich cards as well.</p> <p>These metadata formats improve the user experience when your content is shared on their corresponding social networks.</p> <p>If your existing site or web application utilises these formats it’s important to ensure they are included in your progressive web application as well for optimal virality.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Test your Open Graph markup with the <a href="https://developers.facebook.com/tools/debug/">Facebook Object Debugger Tool</a>.</p> <p>Familiarise yourself with <a href="https://dev.twitter.com/cards/overview">Twitter’s metadata format</a>.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Don’t forget to include these formats if your existing site supports them.</p> </div> <br class="endboxen" /> <h3 class="subhead">Test with Multiple Browsers</h3> <p><b>Why?</b> Clearly from a user perspective it’s important that a website behaviors the same across all browsers. While the experience might adapt for different screen sizes we all expect a mobile site to work the same on similarly sized devices whether it’s an iPhone or an Android mobile phone.</p> <p>While the web can be perceived as fragmented due to number of browsers in use around the world, this variety and competition is part of what makes the web such an innovative platform. Thankfully, web standards have never been more mature than they are now and modern tools enable developers to build rich, cross browser compatible websites with confidence.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Use cross browser testing tools such as <a href="https://www.browserstack.com/">BrowserStack.com</a>, <a href="https://www.browserling.com/">Browserling.com</a> or <a href="http://browsershots.org/">BrowserShots.org</a> to ensure your PWA is cross browser compatible.</p> </div> <br class="endboxen" /> <h3 class="subhead">Measure Page Load Performance</h3> <p><b>Why?</b> The faster a website loads for a user the better their user experience will be. Optimizing for page speed is already a well known focus in web development but sometimes when developing a new version of a site the necessary optimizations are not considered a high priority.</p> <p>When developing a progressive web application we recommend measuring the performance of your page load speed and optimizing before launching the site for the best results. </p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Use tools such as <a href="https://developers.google.com/speed/pagespeed/insights/">Page Speed Insights</a> and <a href="http://webpagetest.org">Web Page Test</a> to measure the page load performance of your site. While Googlebot has a bit more patience in rendering, <a href="https://www.thinkwithgoogle.com/articles/mobile-page-speed-load-time.html">research has shown</a> that 40% of consumers will leave a page that takes longer than three seconds to load..</p> <p>Read more about our web page performance recommendations and the <a href="https://developers.google.com/web/fundamentals/performance/critical-rendering-path/">critical rendering path here</a>.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Avoid leaving optimization as a post-launch step. If your website’s content loads quickly before migrating to a new progressive web application then it’s important to not regress in your optimizations.</p> </div> <br class="endboxen" /> <p>We hope that the above checklist is useful and provides the right guidance to help you develop your Progressive Web Applications with indexability in mind. </p> <p>As you get started, be sure to check out our <a href="https://github.com/google/indexable-pwa-samples">Progressive Web App indexability samples</a> that demonstrate <a href="https://server-dot-indexable-pwa.appspot.com">server-side</a>, <a href="https://client-dot-indexable-pwa.appspot.com">client-side</a> and <a href="https://hybrid-dot-indexable-pwa.appspot.com">hybrid</a> rendering. As always, if you have any questions, please reach out on our <a href="https://support.google.com/webmasters/go/community">Webmaster Forums</a>. </p> <br> <span class="byline-author">Posted by Tom Greenaway, Developer Advocate</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p><a href="https://developers.google.com/web/progressive-web-apps/">Progressive Web Apps</a> (PWAs) are taking advantage of new technologies to bring the best of mobile sites and native applications to users -- and they’re one of the most exciting new ideas on the web. But to truly have an impact, it's important that they’re indexable and linkable. Every recommendation presented in this article is an existing best practice for indexability -- regardless of whether you're building a Progressive Web App or a simple static website. Nonetheless, we have collated these best practices to provide a checklist to guide you:</p> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVgVKTQB5hnuptyyfnJ8YRWMJk_CXL0Vn86oYlbVeLDI1tE68GM71kiK6izDCUdzwLhP-q301t-IhnZNrjrDGqvnhpxPon62wyCZXM2Gj00kN6sy8qP9uLk7raNh9CQrHcssG1/s1600/pwa_roadshow_summit.JPG" imageanchor="1" ><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVgVKTQB5hnuptyyfnJ8YRWMJk_CXL0Vn86oYlbVeLDI1tE68GM71kiK6izDCUdzwLhP-q301t-IhnZNrjrDGqvnhpxPon62wyCZXM2Gj00kN6sy8qP9uLk7raNh9CQrHcssG1/s400/pwa_roadshow_summit.JPG" width="400" /></a> <h3>Make Your Content Crawlable</h3> <p><b>Why?</b> Historically, websites would always generate or render their HTML on the server which is the simplest way to ensure your content is directly linkable. Web applications popularised the concept of client-side rendering in which content is updated dynamically on the page as the users navigates without requiring the page to be reloaded.</p> <p>The modern approach is hybrid rendering, in which server-side rendering is used when a user navigates directly to a URL and client-side rendering is used after the initial page load for subsequent navigation and asynchronous requests.</p> <p>Our <a href="https://server-dot-indexable-pwa.appspot.com">server-side PWA sample</a> demonstrates pure server-side rendering, while our <a href="https://hybrid-dot-indexable-pwa.appspot.com">hybrid PWA sample</a> demonstrates the combined approach.</p> <p>If you are unfamiliar with the <b>server-side</b> and <b>client-side</b> rendering terminology, check out these articles on the web read <a href="http://openmymind.net/2012/5/30/Client-Side-vs-Server-Side-Rendering/">here</a> and <a href="https://www.smashingmagazine.com/2016/03/server-side-rendering-react-node-express/">here.</a></p> <style> .boxbox { width: 100%; word-wrap:break-word; padding: 0.2em; } .badbox { background-color: #eba; } .goodbox { background-color: #ded; } .avoidbox { background-color: #ffd; } .boxbox h5 { font-size: 1em; font-weight: bold; margin: 0;} .boxbox p { margin-top: 0.6em; margin-bottom: 0.6em; } br.endboxen { clear: both; } h3.subhead { margin-top: 2em; } </style> <!-- yeah, maybe not https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiDo1cnZ20Nt74nTxpmAjsKzuyLRYZ1Y6NDJGNceOHckDhGdGJJCkXduzty3nNFmIOHYEVrY0RQF-WGQ2yjshYSqRU1HrGC2UiLhPT_AQ212KJlR-joBSC-Xy_3-nPltMFHVL0/s1600/css.gif <style> .boxbox { float:left; min-width: 31%; max-width: 300px; word-wrap:break-word; padding: 0.2em;} .badbox { background-color: #eba; } .goodbox { background-color: #ded; } .avoidbox { background-color: #ffd; } .boxbox h5 { font-size: 1em; font-weight: bold; margin: 0.5em 0;} br.endboxen { clear: both; } </style> --> <!-- <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>box</p> </div> <div class="boxbox avoidbox"> <h5>Avoid:</h5> <p>box</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>box</p> </div> <br class="endboxen" /> --> <div class="boxbox goodbox"> <h5 class="subhead">Best Practice:</h5> <p>Use server-side or hybrid rendering so users receive the content in the initial payload of their web request.</p> <p>Always ensure your URLs are independently accessible:</p> <p>https://www.example.com/product/25/</p> <p>The above should deep link to that particular resource.</p> <p>If you can’t support server-side or hybrid rendering for your Progressive Web App and you decide to use client-side rendering, we recommend using the Google Search Console “Fetch as Google tool” to verify your content successfully renders for our search crawler.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Don't redirect users accessing deep links back to your web app's homepage.</p> <p>Additionally, serving an error page to users instead of deep linking should also be avoided.</p> </div> <br class="endboxen" /> <h3 class="subhead">Provide Clean URLs</h3> <p><b>Why?</b> Fragment identifiers (#user/24601/ or #!user/24601/) were an effective workaround for browsers to AJAX new content from a server without reloading the page. This design is known as client-side rendering.</p> <p>However, the fragment identifier syntax isn’t compatible with some web tools, frameworks and protocols such as <a href="http://ogp.me/">Facebook’s Open Graph protocol</a>.</p> <p>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/History_API">History API</a> enables us to update the URL without fragment identifiers while still fetching resources asynchronously and therefore avoiding page reloads -- it’s the best of both worlds. The AJAX crawling scheme (with its #! / escaped-fragment URLs) made sense at its time, but is now no longer recommended. </p> <p>Our <a href="https://hybrid-dot-indexable-pwa.appspot.com">hybrid PWA</a> and <a href="https://client-dot-indexable-pwa.appspot.com">client-side PWA samples</a> demonstrate the History API.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Provide clean URLs without fragment identifiers (# or #!) such as:</p> <p>https://www.example.com/product/25/</p> <p>If using client-side or hybrid rendering be sure to support browser navigation with the History API.</p> </div> <div class="boxbox avoidbox"> <h5>Avoid:</h5> <p>Using the #! URL structure to drive unique URLs is discouraged:</p> <p>https://www.example.com/#!product/25/</p> <p>It was introduced as a workaround before the advent of the History API. It is considered a separate pattern to the purely # URL structure.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Using the # URL structure without the accompanying ! symbol is unsupported:</p> <p>https://www.example.com/#product/25/</p> <p>This URL structure is already a concept in the web and relates to deep linking into content on a particular page.</p> </div> <br class="endboxen" /> <h3 class="subhead">Specify Canonical URLs</h3> <p><b>Why?</b> The best way to eliminate confusion for indexing when the same content is available under multiple URLs (be it the same or different domains) is to mark one page as the canonical, and all other pages that duplicate that content to refer to it.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Include the following tag across all pages mirroring a particular piece of content:</p> <p><pre><link rel="canonical" href="https://www.example.com/your-url/" /></pre></p> <p>If you are supporting Accelerated Mobile Pages be sure to correctly use its counterpart rel=”amphtml” instruction as well.</p> </div> <div class="boxbox avoidbox"> <h5>Avoid:</h5> <p>Avoid purposely duplicating content across multiple URLs and not using the rel="canonical" link element.</p> <p>For example, the rel="canonical" link element can reduce ambiguity for URLs with tracking parameters.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Avoid creating conflicting canonical references between your pages.</p> </div> <br class="endboxen" /> <h3 class="subhead">Design for Multiple Devices</h3> <p><b>Why?</b> It’s important that all your users get the best experience possible when viewing your website, regardless of their device. </p> <p>Make your site <a href="https://developers.google.com/web/fundamentals/design-and-ui/responsive/fundamentals/?hl=en">responsive in its design</a> -- fonts, margins, paddings, buttons and general design of your site should scale dynamically based on screen resolutions and device viewports. </p> <p>Small images scaled up for desktop or tablet devices give a poor experience. Conversely, super high resolution images take a long time to download on mobile phones and may impact mobile scroll performance.</p> <p>Read more <a href="https://medium.com/@owencm/designing-great-uis-for-progressive-web-apps-dd38c1d20f7#.c0avg96qb">UX for PWAs here</a>.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Use <a href="https://developers.google.com/web/fundamentals/design-and-ui/media/images/images-in-markup?hl=en">“srcset” attribute</a> to fetch different resolution images for different density screens to avoid downloading images larger than the device’s screen is capable of displaying.</p> <p>Scale your font size and line height to ensure your text is legible no matter the size of the device. Similarly ensure the padding and margins of elements also scale sensibly.</p> <p>Test <a href="https://developers.google.com/web/tools/chrome-devtools/iterate/device-mode/emulate-mobile-viewports?hl=en">various screen resolutions</a> using the <a href="https://developers.google.com/web/tools/chrome-devtools/iterate/device-mode/?hl=en">Chrome Developer Tool’s Device Mode</a> feature and <a href="https://search.google.com/search-console/mobile-friendly">Mobile Friendly Test tool</a>.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Don't show different content to users than you show to Google. If you use <a href="https://support.google.com/webmasters/answer/2604723?hl=en">redirects or user agent detection</a> (a.k.a. browser sniffing or <a href="https://developers.google.com/webmasters/mobile-sites/mobile-seo/dynamic-serving?hl=en">dynamic serving</a>) to alter the design of your site for different devices it’s important that the content itself remains the same.</p> <p>Use the Search Console “Fetch as Google” tool to verify the content fetched by Google matches the content a user sees.</p> <p>For usability reasons, avoid using fixed-size fonts.</p> </div> <br style="clear: both" /> <h3 class="subhead">Develop Iteratively</h3> <p><b>Why?</b> One of the safest paths to take when adding features to a web application is to make changes iteratively. If you add features one at a time you can observe the impact of each individual change.</p> <p>Alternatively many developers prefer to view their progressive web application as an opportunity to overhaul their mobile site in one fell swoop -- developing the new web app in an isolated environment and swapping it with their existing mobile site once ready.</p> <p>When developing features iteratively try to break the changes into separate pieces. For example, if you intend to move from server-side rendering to hybrid rendering then tackle that as a single iteration -- rather than in combination with other features.</p> <p>Both approaches have their own pros and cons. Iterating reduces the complexity of dealing with search indexability as the transition is continuous. However, iterating might result in a slower development process and potentially a less innovative overhaul if development is not starting from scratch.</p> <p>In either case, the most sensitive areas to keep an eye on are your canonical URLs and your site’s robots.txt configuration.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Iterate on your website incrementally by adding new features piece by piece.</p> <p>For example, if don’t support HTTPS yet then start by migrating to a secure site.</p> </div> <div class="boxbox avoidbox"> <h5>Avoid:</h5> <p>If you’ve developed your progressive web app in an isolated environment, then avoid launching it without checking the rel-canonical links and robots.txt are setup appropriately.</p> <p>Ensure your rel-canonical links point to the real site and that your robots.txt configuration allows crawlers to crawl your new site.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>It’s logical to prevent crawlers from indexing your in-development site before launch but don’t forget to unblock crawlers from accessing your new site when you launch.</p> </div> <br class="endboxen" /> <h3 class="subhead">Use Progressive Enhancement</h3> <p><b>Why?</b> Wherever possible it’s important to detect browser features before using them. Feature detection is also better than testing for browsers that you believe support a given feature.</p> <p>A common bad practice in the past was to enable or disable features by testing which browser the user had. However, as browsers are constantly evolving with features this technique is strongly discouraged.</p> <p>Service Worker is a relatively new technology and it’s important to not break compatibility in the pursuit of progress -- it's a perfect example of when to use progressive enhancement.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Before registering a Service Worker check for the availability of its API:</p> <p><pre>if ('serviceWorker' in navigator) { ... </pre> <p>Use per API detection method for all your website’s features.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Never use the browser’s user agent to enable or disable features in your web app. Always check whether the feature’s API is available and gracefully degrade if unavailable.</p> <p>Avoid updating or launching your site without testing across multiple browsers! Check your site analytics to learn which browsers are most popular among your user base.</p> </div> <br class="endboxen" /> <h3 class="subhead">Test with Search Console</h3> <p><b>Why?</b> It’s important to understand how Google Search views your site’s content. You can use <a href="https://www.google.com/webmasters/tools/home?hl=en">Search Console</a> to <a href="https://support.google.com/webmasters/answer/6066468?hl=en">fetch individual URLs from your site</a> and see how Google Search views them using the “Crawl > Fetch as Google“ feature. Search Console will process your JavaScript and render the page when that option is selected; otherwise only the raw HTML response is shown </p> <p>Google Search Console also analyses the content on your page in a variety of ways including detecting the presence of Structured Data, Rich Cards, Sitelinks & Accelerated Mobile Pages.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Monitor your site using Search Console and explore its features including “Fetch as Google”.</p> <p>Provide a Sitemap via Search Console “Crawl > Sitemaps” It can be an effective way to ensure Google Search is aware of all your site’s pages.</p> </div> <br class="endboxen" /> <h3 class="subhead">Annotate with Schema.org structured data</h3> <p><b>Why?</b> <a href="https://schema.org/">Schema.org</a> structured data is a flexible vocabulary for summarizing the most important parts of your page as machine-processable data. This can be as general as simply saying that a page is a NewsArticle, or as specific as detailing the location, band name, venue and ticket vendor for a touring band, or summarizing the ingredients and steps for a recipe.</p> <p>The use of this metadata may not make sense for every page on your web application but it’s recommended where it’s sensible. Google extracts it after the page is rendered.</p> <p>There are a variety of data types including “NewsArticle”, “Recipe” & “Product” to name a few. Explore all the <a href="https://developers.google.com/search/docs/data-types/data-type-selector">supported data types here</a>.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Verify that your Schema.org meta data is correct using Google’s <a href="https://search.google.com/structured-data/testing-tool/">Structured Data Testing Tool</a>.</p> <p>Check that the data you provided is appearing and there are no errors present.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Avoid using a data type that doesn’t match your page’s actual content. For example don’t use “Recipe” for a T-Shirt you’re selling -- use “Product” instead.</p> </div> <br class="endboxen" /> <h3 class="subhead">Annotate with Open Graph & Twitter Cards</h3> <p><b>Why?</b> In addition to the Schema.org metadata it can be helpful to add support for Facebook’s Open Graph protocol and Twitter rich cards as well.</p> <p>These metadata formats improve the user experience when your content is shared on their corresponding social networks.</p> <p>If your existing site or web application utilises these formats it’s important to ensure they are included in your progressive web application as well for optimal virality.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Test your Open Graph markup with the <a href="https://developers.facebook.com/tools/debug/">Facebook Object Debugger Tool</a>.</p> <p>Familiarise yourself with <a href="https://dev.twitter.com/cards/overview">Twitter’s metadata format</a>.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Don’t forget to include these formats if your existing site supports them.</p> </div> <br class="endboxen" /> <h3 class="subhead">Test with Multiple Browsers</h3> <p><b>Why?</b> Clearly from a user perspective it’s important that a website behaviors the same across all browsers. While the experience might adapt for different screen sizes we all expect a mobile site to work the same on similarly sized devices whether it’s an iPhone or an Android mobile phone.</p> <p>While the web can be perceived as fragmented due to number of browsers in use around the world, this variety and competition is part of what makes the web such an innovative platform. Thankfully, web standards have never been more mature than they are now and modern tools enable developers to build rich, cross browser compatible websites with confidence.</p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Use cross browser testing tools such as <a href="https://www.browserstack.com/">BrowserStack.com</a>, <a href="https://www.browserling.com/">Browserling.com</a> or <a href="http://browsershots.org/">BrowserShots.org</a> to ensure your PWA is cross browser compatible.</p> </div> <br class="endboxen" /> <h3 class="subhead">Measure Page Load Performance</h3> <p><b>Why?</b> The faster a website loads for a user the better their user experience will be. Optimizing for page speed is already a well known focus in web development but sometimes when developing a new version of a site the necessary optimizations are not considered a high priority.</p> <p>When developing a progressive web application we recommend measuring the performance of your page load speed and optimizing before launching the site for the best results. </p> <div class="boxbox goodbox"> <h5>Best Practice:</h5> <p>Use tools such as <a href="https://developers.google.com/speed/pagespeed/insights/">Page Speed Insights</a> and <a href="http://webpagetest.org">Web Page Test</a> to measure the page load performance of your site. While Googlebot has a bit more patience in rendering, <a href="https://www.thinkwithgoogle.com/articles/mobile-page-speed-load-time.html">research has shown</a> that 40% of consumers will leave a page that takes longer than three seconds to load..</p> <p>Read more about our web page performance recommendations and the <a href="https://developers.google.com/web/fundamentals/performance/critical-rendering-path/">critical rendering path here</a>.</p> </div> <div class="boxbox badbox"> <h5>Don’t:</h5> <p>Avoid leaving optimization as a post-launch step. If your website’s content loads quickly before migrating to a new progressive web application then it’s important to not regress in your optimizations.</p> </div> <br class="endboxen" /> <p>We hope that the above checklist is useful and provides the right guidance to help you develop your Progressive Web Applications with indexability in mind. </p> <p>As you get started, be sure to check out our <a href="https://github.com/google/indexable-pwa-samples">Progressive Web App indexability samples</a> that demonstrate <a href="https://server-dot-indexable-pwa.appspot.com">server-side</a>, <a href="https://client-dot-indexable-pwa.appspot.com">client-side</a> and <a href="https://hybrid-dot-indexable-pwa.appspot.com">hybrid</a> rendering. As always, if you have any questions, please reach out on our <a href="https://support.google.com/webmasters/go/community">Webmaster Forums</a>. </p> <br> <span class="byline-author">Posted by Tom Greenaway, Developer Advocate</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Building Indexable Progressive Web Apps&url=https://webmasters.googleblog.com/2016/11/building-indexable-progressive-web-apps.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2016/11/building-indexable-progressive-web-apps.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2016/11/building-indexable-progressive-web-apps.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=en_US' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/general%20tips?hl=en_US' rel='tag'> general tips </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/mobile-friendly?hl=en_US' rel='tag'> mobile-friendly </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='1797760683057398772' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2014/09/optimizing-for-bandwidth-on-apache-and.html?hl=en_US' itemprop='url' title='Optimizing for Bandwidth on Apache and Nginx'> Optimizing for Bandwidth on Apache and Nginx </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, September 04, 2014 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <p>Webmaster level: advanced</p> <p>Everyone wants to use less bandwidth: hosts want lower bills, mobile users want to stay under their limits, and no one wants to wait for unnecessary bytes. The web is full of opportunities to save bandwidth: pages served without gzip, stylesheets and JavaScript served unminified, and unoptimized images, just to name a few.</p> <p>So why isn't the web already optimized for bandwidth? If these savings are good for everyone then why haven't they been fixed yet? Mostly it's just been too much hassle. Web designers are encouraged to "save for web" when exporting their artwork, but they don't always remember. JavaScript programmers don't like working with minified code because it makes debugging harder. You can set up a custom pipeline that makes sure each of these optimizations is applied to your site every time as part of your development or deployment process, but that's a lot of work.</p> <p>An easy solution for web users is to use an optimizing proxy, like <a href="https://developer.chrome.com/multidevice/data-compression">Chrome's</a>. When users opt into this service their HTTP traffic goes via Google's proxy, which optimizes their page loads and cuts bandwidth usage by 50%. While this is great for these users, it's limited to people using Chrome who turn the feature on and it can't optimize HTTPS traffic.</p> <p>With <a href="https://developers.google.com/speed/pagespeed/module/optimize-for-bandwidth">Optimize for Bandwidth</a>, the PageSpeed team is bringing this same technology to webmasters so that everyone can benefit: users of other browsers, secure sites, desktop users, and site owners who want to bring down their outbound traffic bills. Just install the <a href="https://developers.google.com/speed/pagespeed/module">PageSpeed module</a> on your Apache or Nginx server [1], <a href="https://developers.google.com/speed/pagespeed/module/optimize-for-bandwidth">turn on</a> Optimize for Bandwidth in your configuration, and PageSpeed will do the rest.</p> <p>If you later decide you're interested in PageSpeed's more advanced optimizations, from <a href="https://developers.google.com/speed/pagespeed/module/filter-cache-extend">cache extension</a> and <a href="https://developers.google.com/speed/pagespeed/module/filter-js-inline">inlining</a> to the more aggressive <a href="https://developers.google.com/speed/pagespeed/module/filter-lazyload-images">image lazyloading</a> and <a href="https://developers.google.com/speed/pagespeed/module/filter-js-defer">defer JavaScript</a>, it's just a matter of enabling them in your PageSpeed configuration.</p> <p>Learn more about <a href="https://developers.google.com/speed/pagespeed/module">installing PageSpeed</a> or <a href="https://developers.google.com/speed/pagespeed/module/optimize-for-bandwidth">enabling Optimize for Bandwidth</a>.</p> <br><span class="byline-author">Posted by Jeff Kaufman, Make the Web Fast</span> <br><br> <br>[1] If you're using a different web server, consider running PageSpeed on an Apache or Nginx proxy. And it's all <a href="https://code.google.com/p/modpagespeed/">open source</a>, with porting efforts underway for <a href="http://www.iispeed.com/">IIS</a>, <a href="http://www.atspagespeed.com/">ATS</a>, and others. <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <p>Webmaster level: advanced</p> <p>Everyone wants to use less bandwidth: hosts want lower bills, mobile users want to stay under their limits, and no one wants to wait for unnecessary bytes. The web is full of opportunities to save bandwidth: pages served without gzip, stylesheets and JavaScript served unminified, and unoptimized images, just to name a few.</p> <p>So why isn't the web already optimized for bandwidth? If these savings are good for everyone then why haven't they been fixed yet? Mostly it's just been too much hassle. Web designers are encouraged to "save for web" when exporting their artwork, but they don't always remember. JavaScript programmers don't like working with minified code because it makes debugging harder. You can set up a custom pipeline that makes sure each of these optimizations is applied to your site every time as part of your development or deployment process, but that's a lot of work.</p> <p>An easy solution for web users is to use an optimizing proxy, like <a href="https://developer.chrome.com/multidevice/data-compression">Chrome's</a>. When users opt into this service their HTTP traffic goes via Google's proxy, which optimizes their page loads and cuts bandwidth usage by 50%. While this is great for these users, it's limited to people using Chrome who turn the feature on and it can't optimize HTTPS traffic.</p> <p>With <a href="https://developers.google.com/speed/pagespeed/module/optimize-for-bandwidth">Optimize for Bandwidth</a>, the PageSpeed team is bringing this same technology to webmasters so that everyone can benefit: users of other browsers, secure sites, desktop users, and site owners who want to bring down their outbound traffic bills. Just install the <a href="https://developers.google.com/speed/pagespeed/module">PageSpeed module</a> on your Apache or Nginx server [1], <a href="https://developers.google.com/speed/pagespeed/module/optimize-for-bandwidth">turn on</a> Optimize for Bandwidth in your configuration, and PageSpeed will do the rest.</p> <p>If you later decide you're interested in PageSpeed's more advanced optimizations, from <a href="https://developers.google.com/speed/pagespeed/module/filter-cache-extend">cache extension</a> and <a href="https://developers.google.com/speed/pagespeed/module/filter-js-inline">inlining</a> to the more aggressive <a href="https://developers.google.com/speed/pagespeed/module/filter-lazyload-images">image lazyloading</a> and <a href="https://developers.google.com/speed/pagespeed/module/filter-js-defer">defer JavaScript</a>, it's just a matter of enabling them in your PageSpeed configuration.</p> <p>Learn more about <a href="https://developers.google.com/speed/pagespeed/module">installing PageSpeed</a> or <a href="https://developers.google.com/speed/pagespeed/module/optimize-for-bandwidth">enabling Optimize for Bandwidth</a>.</p> <br><span class="byline-author">Posted by Jeff Kaufman, Make the Web Fast</span> <br><br> <br>[1] If you're using a different web server, consider running PageSpeed on an Apache or Nginx proxy. And it's all <a href="https://code.google.com/p/modpagespeed/">open source</a>, with porting efforts underway for <a href="http://www.iispeed.com/">IIS</a>, <a href="http://www.atspagespeed.com/">ATS</a>, and others. <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Optimizing for Bandwidth on Apache and Nginx&url=https://webmasters.googleblog.com/2014/09/optimizing-for-bandwidth-on-apache-and.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2014/09/optimizing-for-bandwidth-on-apache-and.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2014/09/optimizing-for-bandwidth-on-apache-and.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=en_US' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='6256662899538657963' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2014/05/making-your-site-more-mobile-friendly.html?hl=en_US' itemprop='url' title='Making your site more mobile-friendly with PageSpeed Insights'> Making your site more mobile-friendly with PageSpeed Insights </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Monday, May 19, 2014 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> Webmaster level: all<b id="docs-internal-guid-a08b3fac-13e3-3169-7972-5b8ec934aaa5"><br /> </b><br /> <br /> To help developers and webmasters make their pages mobile-friendly, we recently updated PageSpeed Insights with additional recommendations on mobile usability. <b><br /> </b> <b><br /></b><br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6j9M54hRWzBgC8CHadDhJodYbXPdG14xWvWi6k47-bbYUH3vHTgO2tRovXyu5Xy5yRT5GgamHzLwC760TePkw3M2nKCXOUXZ0pwNSb9Pdb4acghTz-7zaSiePxQlHi2YezEev/s1600/psi-webdeiver-torso-edition.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6j9M54hRWzBgC8CHadDhJodYbXPdG14xWvWi6k47-bbYUH3vHTgO2tRovXyu5Xy5yRT5GgamHzLwC760TePkw3M2nKCXOUXZ0pwNSb9Pdb4acghTz-7zaSiePxQlHi2YezEev/s1600/psi-webdeiver-torso-edition.png" width="362" /></a></div> <br /> <b><br /> </b> Poor usability can diminish the benefits of a fast page load. We know the average mobile page takes <a href="http://analytics.blogspot.com/2013/04/is-web-getting-faster.html">more than 7 seconds to load</a>, and by using the <a href="https://developers.google.com/speed/pagespeed/insights/?utm_source=blogspot&utm_campaign=mobile_ux">PageSpeed Insights tool</a> and following its speed recommendations, you can make your page <a href="http://googlewebmastercentral.blogspot.com/2013/08/making-smartphone-sites-load-fast.html">load much faster</a>. But suppose your fast mobile site loads in just 2 seconds instead of 7 seconds. If mobile users still have to spend another 5 seconds once the page loads to pinch-zoom and scroll the screen before they can start reading the text and interacting with the page, then that site isn’t really fast to use after all. PageSpeed Insights’ new User Experience rules can help you find and fix these usability issues. <br /> <br /> These new recommendations currently cover the following areas: <br /> <ul> <li><b> Configure the viewport</b>: Without a meta-viewport tag, modern mobile browsers will assume your page is not mobile-friendly, and will fall back to a desktop viewport and possibly apply font-boosting, interfering with your intended page layout. <a href="https://developers.google.com/speed/docs/insights/ConfigureViewport?utm_source=blogspot&utm_campaign=mobile_ux">Configuring the viewport</a> to width=device-width should be your first step in mobilizing your site.<br /><br /> </li> <li><b> Size content to the viewport</b>: Users expect mobile sites to scroll vertically, not horizontally. Once you’ve configured your viewport, make sure your page content <a href="https://developers.google.com/speed/docs/insights/SizeContentToViewport?utm_source=blogspot&utm_campaign=mobile_ux">fits the width of that viewport</a>, keeping in mind that not all mobile devices are the same width.<br /><br /> </li> <li><b> Use legible font sizes</b>: If users have to zoom in just to be able read your article text on their smartphone screen, then your site isn’t mobile-friendly. PageSpeed Insights checks that your site’s <a href="https://developers.google.com/speed/docs/insights/UseLegibleFontSizes?utm_source=blogspot&utm_campaign=mobile_ux">text is large enough</a> for most users to read comfortably. <br /></li> <li><b> Size tap targets appropriately</b>: Nothing’s more frustrating than trying to tap a button or link on a phone or tablet touchscreen, and accidentally hitting the wrong one because your finger pad is much bigger than a desktop mouse cursor. Make sure that your mobile site’s touchscreen <a href="https://developers.google.com/speed/docs/insights/SizeTapTargetsAppropriately?utm_source=blogspot&utm_campaign=mobile_ux">tap targets are large enough</a> to press easily. <br /></li> <li><b> Avoid plugins</b>: Most smartphones don’t support Flash or other browser plugins, so make sure your mobile site <a href="https://developers.google.com/speed/docs/insights/AvoidPlugins?utm_source=blogspot&utm_campaign=mobile_ux">doesn't rely on plugins</a>.</li> </ul> These rules are described in more detail in <a href="https://developers.google.com/speed/docs/insights/rules?utm_source=blogspot&utm_campaign=mobile_ux">our help pages</a>. When you’re ready, you can test your pages and the improvements you make using the <a href="https://developers.google.com/speed/pagespeed/insights/?utm_source=blogspot&utm_campaign=mobile_ux">PageSpeed Insights tool</a>. We’ve also updated PageSpeed Insights to use a mobile friendly design, and we’ve translated our documents into additional languages.<br /> <br /> As always, if you have any questions or feedback, please post in our <a href="https://groups.google.com/forum/#!forum/pagespeed-insights-discuss">discussion group</a>. <br /> <br /> <span class="byline-author">Posted by Matthew Steele and Doantam Phan, PageSpeed Insights team</span> </div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> Webmaster level: all<b id="docs-internal-guid-a08b3fac-13e3-3169-7972-5b8ec934aaa5"><br /> </b><br /> <br /> To help developers and webmasters make their pages mobile-friendly, we recently updated PageSpeed Insights with additional recommendations on mobile usability. <b><br /> </b> <b><br /></b><br /> <div class="separator" style="clear: both; text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6j9M54hRWzBgC8CHadDhJodYbXPdG14xWvWi6k47-bbYUH3vHTgO2tRovXyu5Xy5yRT5GgamHzLwC760TePkw3M2nKCXOUXZ0pwNSb9Pdb4acghTz-7zaSiePxQlHi2YezEev/s1600/psi-webdeiver-torso-edition.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6j9M54hRWzBgC8CHadDhJodYbXPdG14xWvWi6k47-bbYUH3vHTgO2tRovXyu5Xy5yRT5GgamHzLwC760TePkw3M2nKCXOUXZ0pwNSb9Pdb4acghTz-7zaSiePxQlHi2YezEev/s1600/psi-webdeiver-torso-edition.png" width="362" /></a></div> <br /> <b><br /> </b> Poor usability can diminish the benefits of a fast page load. We know the average mobile page takes <a href="http://analytics.blogspot.com/2013/04/is-web-getting-faster.html">more than 7 seconds to load</a>, and by using the <a href="https://developers.google.com/speed/pagespeed/insights/?utm_source=blogspot&utm_campaign=mobile_ux">PageSpeed Insights tool</a> and following its speed recommendations, you can make your page <a href="http://googlewebmastercentral.blogspot.com/2013/08/making-smartphone-sites-load-fast.html">load much faster</a>. But suppose your fast mobile site loads in just 2 seconds instead of 7 seconds. If mobile users still have to spend another 5 seconds once the page loads to pinch-zoom and scroll the screen before they can start reading the text and interacting with the page, then that site isn’t really fast to use after all. PageSpeed Insights’ new User Experience rules can help you find and fix these usability issues. <br /> <br /> These new recommendations currently cover the following areas: <br /> <ul> <li><b> Configure the viewport</b>: Without a meta-viewport tag, modern mobile browsers will assume your page is not mobile-friendly, and will fall back to a desktop viewport and possibly apply font-boosting, interfering with your intended page layout. <a href="https://developers.google.com/speed/docs/insights/ConfigureViewport?utm_source=blogspot&utm_campaign=mobile_ux">Configuring the viewport</a> to width=device-width should be your first step in mobilizing your site.<br /><br /> </li> <li><b> Size content to the viewport</b>: Users expect mobile sites to scroll vertically, not horizontally. Once you’ve configured your viewport, make sure your page content <a href="https://developers.google.com/speed/docs/insights/SizeContentToViewport?utm_source=blogspot&utm_campaign=mobile_ux">fits the width of that viewport</a>, keeping in mind that not all mobile devices are the same width.<br /><br /> </li> <li><b> Use legible font sizes</b>: If users have to zoom in just to be able read your article text on their smartphone screen, then your site isn’t mobile-friendly. PageSpeed Insights checks that your site’s <a href="https://developers.google.com/speed/docs/insights/UseLegibleFontSizes?utm_source=blogspot&utm_campaign=mobile_ux">text is large enough</a> for most users to read comfortably. <br /></li> <li><b> Size tap targets appropriately</b>: Nothing’s more frustrating than trying to tap a button or link on a phone or tablet touchscreen, and accidentally hitting the wrong one because your finger pad is much bigger than a desktop mouse cursor. Make sure that your mobile site’s touchscreen <a href="https://developers.google.com/speed/docs/insights/SizeTapTargetsAppropriately?utm_source=blogspot&utm_campaign=mobile_ux">tap targets are large enough</a> to press easily. <br /></li> <li><b> Avoid plugins</b>: Most smartphones don’t support Flash or other browser plugins, so make sure your mobile site <a href="https://developers.google.com/speed/docs/insights/AvoidPlugins?utm_source=blogspot&utm_campaign=mobile_ux">doesn't rely on plugins</a>.</li> </ul> These rules are described in more detail in <a href="https://developers.google.com/speed/docs/insights/rules?utm_source=blogspot&utm_campaign=mobile_ux">our help pages</a>. When you’re ready, you can test your pages and the improvements you make using the <a href="https://developers.google.com/speed/pagespeed/insights/?utm_source=blogspot&utm_campaign=mobile_ux">PageSpeed Insights tool</a>. We’ve also updated PageSpeed Insights to use a mobile friendly design, and we’ve translated our documents into additional languages.<br /> <br /> As always, if you have any questions or feedback, please post in our <a href="https://groups.google.com/forum/#!forum/pagespeed-insights-discuss">discussion group</a>. <br /> <br /> <span class="byline-author">Posted by Matthew Steele and Doantam Phan, PageSpeed Insights team</span> </div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Making your site more mobile-friendly with PageSpeed Insights&url=https://webmasters.googleblog.com/2014/05/making-your-site-more-mobile-friendly.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2014/05/making-your-site-more-mobile-friendly.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2014/05/making-your-site-more-mobile-friendly.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=en_US' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/beginner?hl=en_US' rel='tag'> beginner </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=en_US' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/mobile?hl=en_US' rel='tag'> mobile </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='429985098425112801' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2013/08/making-smartphone-sites-load-fast.html?hl=en_US' itemprop='url' title='Making smartphone sites load fast'> Making smartphone sites load fast </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, August 08, 2013 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Webmaster level: Intermediate<br /> <br /> Users <a href="//www.google.com/think/research-studies/creating-moments-that-matter.html">tell us</a> they use smartphones to search online because it’s quick and convenient, but today’s average mobile page typically <a href="http://analytics.blogspot.com/2013/04/is-web-getting-faster.html">takes more than 7 seconds to load</a>. Wouldn’t it be great if mobile pages loaded in under one second? Today we’re announcing new <a href="https://developers.google.com/speed/docs/insights/mobile">guidelines</a> and an updated <a href="http://developers.google.com/speed/pagespeed/insights/">PageSpeed Insights tool</a> to help webmasters optimize their mobile pages for best rendering performance.<br /> <h4>Prioritizing above-the-fold content</h4>Research <a href="http://www.nngroup.com/articles/response-times-3-important-limits/">shows</a> that users’ flow is interrupted if pages take longer than one second to load. To deliver the best experience and keep the visitor engaged, our guidelines focus on rendering some content, known as the above-the-fold content, to users in one second (or less!) while the rest of the page continues to load and render in the background. The above-the-fold HTML, CSS, and JS is known as the <a href="//www.youtube.com/watch?v=YV1nKLWoARQ">critical rendering path</a>.<br /> <br /> We can achieve sub-second rendering of the above-the-fold content on mobile networks by applying the following best practices:<br /> <ul><li>Server must render the response (< 200 ms)</li> <li>Number of redirects should be minimized</li> <li>Number of roundtrips to first render should be minimized</li> <li>Avoid external blocking JavaScript and CSS in above-the-fold content</li> <li>Reserve time for browser layout and rendering (200 ms)</li> <li>Optimize JavaScript execution and rendering time</li></ul>These are explained in more details in the <a href="https://developers.google.com/speed/docs/insights/mobile">mobile-specific help pages</a>, and, when you’re ready, you can test your pages and the improvements you make using the <a href="http://developers.google.com/speed/pagespeed/insights/">PageSpeed Insights</a> <br /> tool.<br /> <br /> As always, if you have any questions or feedback, please post in our <a href="https://groups.google.com/forum/#!forum/page-speed-discuss">discussion group</a>.<br /> <br /> <span class="byline-author">Posted by <a href="https://plus.google.com/117340630485537362092?rel=author">Bryan McQuade</a>, Software Engineer, and Pierre Far, Webmaster Trends Analyst</span><br /> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Webmaster level: Intermediate<br /> <br /> Users <a href="//www.google.com/think/research-studies/creating-moments-that-matter.html">tell us</a> they use smartphones to search online because it’s quick and convenient, but today’s average mobile page typically <a href="http://analytics.blogspot.com/2013/04/is-web-getting-faster.html">takes more than 7 seconds to load</a>. Wouldn’t it be great if mobile pages loaded in under one second? Today we’re announcing new <a href="https://developers.google.com/speed/docs/insights/mobile">guidelines</a> and an updated <a href="http://developers.google.com/speed/pagespeed/insights/">PageSpeed Insights tool</a> to help webmasters optimize their mobile pages for best rendering performance.<br /> <h4>Prioritizing above-the-fold content</h4>Research <a href="http://www.nngroup.com/articles/response-times-3-important-limits/">shows</a> that users’ flow is interrupted if pages take longer than one second to load. To deliver the best experience and keep the visitor engaged, our guidelines focus on rendering some content, known as the above-the-fold content, to users in one second (or less!) while the rest of the page continues to load and render in the background. The above-the-fold HTML, CSS, and JS is known as the <a href="//www.youtube.com/watch?v=YV1nKLWoARQ">critical rendering path</a>.<br /> <br /> We can achieve sub-second rendering of the above-the-fold content on mobile networks by applying the following best practices:<br /> <ul><li>Server must render the response (< 200 ms)</li> <li>Number of redirects should be minimized</li> <li>Number of roundtrips to first render should be minimized</li> <li>Avoid external blocking JavaScript and CSS in above-the-fold content</li> <li>Reserve time for browser layout and rendering (200 ms)</li> <li>Optimize JavaScript execution and rendering time</li></ul>These are explained in more details in the <a href="https://developers.google.com/speed/docs/insights/mobile">mobile-specific help pages</a>, and, when you’re ready, you can test your pages and the improvements you make using the <a href="http://developers.google.com/speed/pagespeed/insights/">PageSpeed Insights</a> <br /> tool.<br /> <br /> As always, if you have any questions or feedback, please post in our <a href="https://groups.google.com/forum/#!forum/page-speed-discuss">discussion group</a>.<br /> <br /> <span class="byline-author">Posted by <a href="https://plus.google.com/117340630485537362092?rel=author">Bryan McQuade</a>, Software Engineer, and Pierre Far, Webmaster Trends Analyst</span><br /> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Making smartphone sites load fast&url=https://webmasters.googleblog.com/2013/08/making-smartphone-sites-load-fast.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2013/08/making-smartphone-sites-load-fast.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2013/08/making-smartphone-sites-load-fast.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=en_US' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=en_US' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/mobile?hl=en_US' rel='tag'> mobile </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='1733893280768995791' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2012/10/make-web-faster-with-modpagespeed-now.html?hl=en_US' itemprop='url' title='Make the web faster with mod_pagespeed, now out of Beta'> Make the web faster with mod_pagespeed, now out of Beta </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, October 10, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> <br /> <br /> If your page is on the web, speed matters. For developers and webmasters, making your page faster shouldn’t be a hassle, which is why we <a href="http://googledevelopers.blogspot.com/2010/11/make-your-websites-run-faster.html">introduced mod_pagespeed in 2010</a>. Since then the development team has been working to improve the functionality, quality and performance of this open-source Apache module that automatically optimizes web pages and their resources. Now, after almost two years and eighteen releases, we are announcing that we are taking off the Beta label.<br /> <br /> We’re committed to working with the open-source community to continue evolving mod_pagespeed, including more, better and smarter optimizations and support for other web servers. Over 120,000 sites are already using mod_pagespeed to improve the performance of their web pages using the latest techniques and trends in optimization. The product is used worldwide by individual sites, and is also offered by hosting providers, such as DreamHost, Go Daddy and content delivery networks like EdgeCast. With the move out of beta we hope that even more sites will soon benefit from the web performance improvements offered through mod_pagespeed.<br /> <br /> mod_pagespeed is a key part of our goal to help make the web faster for everyone. Users prefer faster sites and we have seen that faster pages lead to higher user engagement, conversions, and retention. In fact, page speed is one of the signals in <a href="http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html">search ranking</a> and <a href="http://adwords.blogspot.com/2008/03/landing-page-load-time-will-soon-be.html">ad quality scores</a>. Besides evangelizing for speed, we offer tools and technologies to help measure, quantify, and improve performance, such as Site Speed Reports in <a href="//www.google.com/analytics/">Google Analytics</a>, <a href="https://developers.google.com/speed/pagespeed/insights">PageSpeed Insights</a>, and <a href="https://developers.google.com/speed/pagespeed/">PageSpeed Optimization</a> products. In fact, both mod_pagespeed and PageSpeed Service are based on our open-source <a href="https://developers.google.com/speed/pagespeed/psol">PageSpeed Optimization Libraries</a> project, and are important ways in which we help websites take advantage of the latest performance best practices.<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="//www.youtube.com/embed/6uCAdQSHhmA" width="560"></iframe></div> <br /> <br /> To learn more about mod_pagespeed and how to incorporate it in your site, watch our recent <a href="//www.youtube.com/watch?v=6uCAdQSHhmA">Google Developers Live session</a> or visit the <a href="https://developers.google.com/speed/pagespeed/mod">mod_pagespeed product page</a>.<br /> <br /> <br /> <span class="byline-author">Posted by Joshua Marantz and Ilya Grigorik, Google PageSpeed Team</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> <br /> <br /> If your page is on the web, speed matters. For developers and webmasters, making your page faster shouldn’t be a hassle, which is why we <a href="http://googledevelopers.blogspot.com/2010/11/make-your-websites-run-faster.html">introduced mod_pagespeed in 2010</a>. Since then the development team has been working to improve the functionality, quality and performance of this open-source Apache module that automatically optimizes web pages and their resources. Now, after almost two years and eighteen releases, we are announcing that we are taking off the Beta label.<br /> <br /> We’re committed to working with the open-source community to continue evolving mod_pagespeed, including more, better and smarter optimizations and support for other web servers. Over 120,000 sites are already using mod_pagespeed to improve the performance of their web pages using the latest techniques and trends in optimization. The product is used worldwide by individual sites, and is also offered by hosting providers, such as DreamHost, Go Daddy and content delivery networks like EdgeCast. With the move out of beta we hope that even more sites will soon benefit from the web performance improvements offered through mod_pagespeed.<br /> <br /> mod_pagespeed is a key part of our goal to help make the web faster for everyone. Users prefer faster sites and we have seen that faster pages lead to higher user engagement, conversions, and retention. In fact, page speed is one of the signals in <a href="http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html">search ranking</a> and <a href="http://adwords.blogspot.com/2008/03/landing-page-load-time-will-soon-be.html">ad quality scores</a>. Besides evangelizing for speed, we offer tools and technologies to help measure, quantify, and improve performance, such as Site Speed Reports in <a href="//www.google.com/analytics/">Google Analytics</a>, <a href="https://developers.google.com/speed/pagespeed/insights">PageSpeed Insights</a>, and <a href="https://developers.google.com/speed/pagespeed/">PageSpeed Optimization</a> products. In fact, both mod_pagespeed and PageSpeed Service are based on our open-source <a href="https://developers.google.com/speed/pagespeed/psol">PageSpeed Optimization Libraries</a> project, and are important ways in which we help websites take advantage of the latest performance best practices.<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <iframe allowfullscreen="allowfullscreen" frameborder="0" height="315" src="//www.youtube.com/embed/6uCAdQSHhmA" width="560"></iframe></div> <br /> <br /> To learn more about mod_pagespeed and how to incorporate it in your site, watch our recent <a href="//www.youtube.com/watch?v=6uCAdQSHhmA">Google Developers Live session</a> or visit the <a href="https://developers.google.com/speed/pagespeed/mod">mod_pagespeed product page</a>.<br /> <br /> <br /> <span class="byline-author">Posted by Joshua Marantz and Ilya Grigorik, Google PageSpeed Team</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Make the web faster with mod_pagespeed, now out of Beta&url=https://webmasters.googleblog.com/2012/10/make-web-faster-with-modpagespeed-now.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2012/10/make-web-faster-with-modpagespeed-now.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2012/10/make-web-faster-with-modpagespeed-now.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=en_US' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/general%20tips?hl=en_US' rel='tag'> general tips </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='1404381690809927103' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2012/05/making-more-pages-load-instantly.html?hl=en_US' itemprop='url' title='Making more pages load instantly'> Making more pages load instantly </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, May 17, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> Webmaster level: All<br /> <br /> <br /> At Google we're obsessed with speed. We've long known that even seemingly minor speed increases can have <a href="http://googleresearch.blogspot.com/2009/06/speed-matters.html">surprisingly large impacts</a> on user engagement and happiness. About a year ago we <a href="http://googlewebmastercentral.blogspot.com/2011/06/announcing-instant-pages.html">rolled out Instant Pages</a> in pursuit of that goal. Instant Pages makes use of prerendering technology in Chrome to make your site appear to load instantly in some cases, with no need for any extra work on your part. Here's a video of it in action:<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <iframe allowfullscreen="" frameborder="0" height="390" src="//www.youtube.com/embed/_Jn93FDx9oI" width="565"></iframe> </div> <br /> <br /> We've been closely watching performance and listening to webmaster feedback. Since Instant Pages rolled out we've saved more than a thousand years of ours users' time. We're very happy with the results so far, and we'll be gradually increasing how often we trigger the feature.<br /> <br /> In the vast majority of cases, webmasters don't have to do anything for their sites to work correctly with prerendering. As we mentioned in our <a href="http://googlewebmastercentral.blogspot.com/2011/06/announcing-instant-pages.html">initial announcement of Instant Pages</a>, search traffic will be measured in Webmaster Tools just like before this feature: only results the user visits will be counted. If your site keeps track of pageviews on its own, you might be interested in the <a href="https://developers.google.com/chrome/whitepapers/pagevisibility">Page Visibility API</a>, which allows you to detect when prerendering is occurring and factor those out of your statistics. If you use an ads or analytics package, check with them to see if their solution is already prerender-aware; if it is, in many cases you won't need to make any changes at all. If you're interested in triggering Chrome's prerendering within your own site, see the <a href="https://developers.google.com/chrome/whitepapers/prerender">Prerendering in Chrome</a> article.<br /> <br /> Instant Pages means that users arrive at your site happier and more engaged, which is great for everyone.<br /> <br /> <br /> <span class="byline-author">Posted by <a href="https://plus.google.com/102497646948960935530/about" rel="author">Ziga Mahkovec</a> - Software Engineer, Instant Pages</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> Webmaster level: All<br /> <br /> <br /> At Google we're obsessed with speed. We've long known that even seemingly minor speed increases can have <a href="http://googleresearch.blogspot.com/2009/06/speed-matters.html">surprisingly large impacts</a> on user engagement and happiness. About a year ago we <a href="http://googlewebmastercentral.blogspot.com/2011/06/announcing-instant-pages.html">rolled out Instant Pages</a> in pursuit of that goal. Instant Pages makes use of prerendering technology in Chrome to make your site appear to load instantly in some cases, with no need for any extra work on your part. Here's a video of it in action:<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <iframe allowfullscreen="" frameborder="0" height="390" src="//www.youtube.com/embed/_Jn93FDx9oI" width="565"></iframe> </div> <br /> <br /> We've been closely watching performance and listening to webmaster feedback. Since Instant Pages rolled out we've saved more than a thousand years of ours users' time. We're very happy with the results so far, and we'll be gradually increasing how often we trigger the feature.<br /> <br /> In the vast majority of cases, webmasters don't have to do anything for their sites to work correctly with prerendering. As we mentioned in our <a href="http://googlewebmastercentral.blogspot.com/2011/06/announcing-instant-pages.html">initial announcement of Instant Pages</a>, search traffic will be measured in Webmaster Tools just like before this feature: only results the user visits will be counted. If your site keeps track of pageviews on its own, you might be interested in the <a href="https://developers.google.com/chrome/whitepapers/pagevisibility">Page Visibility API</a>, which allows you to detect when prerendering is occurring and factor those out of your statistics. If you use an ads or analytics package, check with them to see if their solution is already prerender-aware; if it is, in many cases you won't need to make any changes at all. If you're interested in triggering Chrome's prerendering within your own site, see the <a href="https://developers.google.com/chrome/whitepapers/prerender">Prerendering in Chrome</a> article.<br /> <br /> Instant Pages means that users arrive at your site happier and more engaged, which is great for everyone.<br /> <br /> <br /> <span class="byline-author">Posted by <a href="https://plus.google.com/102497646948960935530/about" rel="author">Ziga Mahkovec</a> - Software Engineer, Instant Pages</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Making more pages load instantly&url=https://webmasters.googleblog.com/2012/05/making-more-pages-load-instantly.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2012/05/making-more-pages-load-instantly.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2012/05/making-more-pages-load-instantly.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=en_US' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/beginner?hl=en_US' rel='tag'> beginner </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=en_US' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='7779705456512954117' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2012/02/preparing-your-site-for-traffic-spike.html?hl=en_US' itemprop='url' title='Preparing your site for a traffic spike'> Preparing your site for a traffic spike </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, February 09, 2012 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> Webmaster level: Intermediate<br /> <br /> It’s a moment any site owner both looks forward to, and dreads: a huge surge in traffic to your site (yay!) can often cause your site to crash (boo!). Maybe you’ll create a piece of viral content, or get Slashdotted, or maybe Larry Page will get a tattoo and your site on tech tattoos will be suddenly in vogue.<br /> <br /> Many people go online immediately after a noteworthy event—a political debate, the death of a celebrity, or a natural disaster—to get news and information about that event. This can cause a rapid increase in traffic to websites that provide relevant information, and may even cause sites to crash at the moment they’re becoming most popular. While it’s not always possible to anticipate such events, you can prepare your site in a variety of ways so that you’ll be ready to handle a sudden surge in traffic if one should occur:<br /> <ul> <li><b>Prepare a lightweight version of your site.</b><br />Consider maintaining a lightweight version of your website; you can then switch all of your traffic over to this lightweight version if you start to experience a spike in traffic. One good way to do this is to have a mobile version of your site, and to make the mobile site available to desktop/PC users during periods of high traffic. Another low-effort option is to just maintain a lightweight version of your homepage, since the homepage is often the most-requested page of a site as visitors start there and then navigate out to the specific area of the site that they’re interested in. If a particular article or picture on your site has gone viral, you could similarly create a lightweight version of just that page.<br />A couple tips for creating lightweight pages:</li> <ul> <li>Exclude decorative elements like images or Flash wherever possible; use text instead of images in the site navigation and chrome, and put most of the content in HTML.</li> <li>Use static HTML pages rather than dynamic ones; the latter place more load on your servers. You can also cache the static output of dynamic pages to reduce server load.</li> </ul> <li><b>Take advantage of stable third-party services.</b><br />Another alternative is to host a copy of your site on a third-party service that you know will be able to withstand a heavy stream of traffic. For example, you could create a copy of your site—or a pared-down version with a focus on information relevant to the spike—on a platform like <a href="http://sites.google.com/">Google Sites</a> or <a href="//www.blogger.com/">Blogger</a>; use services like <a href="http://docs.google.com/">Google Docs</a> to host documents or forms; or use a <a href="https://www.google.com/search?q=content+delivery+network">content delivery network</a> (CDN).</li> <li><b>Use lightweight file formats.</b><br />If you offer downloadable information, try to make the downloaded files as small as possible by using lightweight file formats. For example, offering the same data as a plain text file rather than a PDF can allow users to download the exact same content at a fraction of the filesize (thereby lightening the load on your servers). Also keep in mind that, if it’s not possible to use plain text files, PDFs generated from textual content are more lightweight than PDFs with images in them. Text-based PDFs are also <a href="http://googlewebmastercentral.blogspot.com/2011/09/pdfs-in-google-search-results.html">easier for Google to understand and index fully</a>.</li> <li><b>Make tabular data available in CSV and XML formats.</b><br />If you offer numerical or tabular data (data displayed in tables), we recommend also providing it in CSV and/or XML format. These filetypes are relatively lightweight and make it easy for external developers to use your data in external applications or services in cases where you want the data to reach as many people as possible, such as in the wake of a natural disaster.</li> </ul> We’d love to hear your tips and tricks for weathering traffic spikes—come join us in our <a href="//www.google.com/support/forum/p/Webmasters?hl=en">Webmaster Help Forum</a>.<br /> <br /> <span class="byline-author">Posted by <a href="https://plus.google.com/107122646256015117642/about" rel="author">Susan Moskwa</a>, Webmaster Trends Analyst</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> Webmaster level: Intermediate<br /> <br /> It’s a moment any site owner both looks forward to, and dreads: a huge surge in traffic to your site (yay!) can often cause your site to crash (boo!). Maybe you’ll create a piece of viral content, or get Slashdotted, or maybe Larry Page will get a tattoo and your site on tech tattoos will be suddenly in vogue.<br /> <br /> Many people go online immediately after a noteworthy event—a political debate, the death of a celebrity, or a natural disaster—to get news and information about that event. This can cause a rapid increase in traffic to websites that provide relevant information, and may even cause sites to crash at the moment they’re becoming most popular. While it’s not always possible to anticipate such events, you can prepare your site in a variety of ways so that you’ll be ready to handle a sudden surge in traffic if one should occur:<br /> <ul> <li><b>Prepare a lightweight version of your site.</b><br />Consider maintaining a lightweight version of your website; you can then switch all of your traffic over to this lightweight version if you start to experience a spike in traffic. One good way to do this is to have a mobile version of your site, and to make the mobile site available to desktop/PC users during periods of high traffic. Another low-effort option is to just maintain a lightweight version of your homepage, since the homepage is often the most-requested page of a site as visitors start there and then navigate out to the specific area of the site that they’re interested in. If a particular article or picture on your site has gone viral, you could similarly create a lightweight version of just that page.<br />A couple tips for creating lightweight pages:</li> <ul> <li>Exclude decorative elements like images or Flash wherever possible; use text instead of images in the site navigation and chrome, and put most of the content in HTML.</li> <li>Use static HTML pages rather than dynamic ones; the latter place more load on your servers. You can also cache the static output of dynamic pages to reduce server load.</li> </ul> <li><b>Take advantage of stable third-party services.</b><br />Another alternative is to host a copy of your site on a third-party service that you know will be able to withstand a heavy stream of traffic. For example, you could create a copy of your site—or a pared-down version with a focus on information relevant to the spike—on a platform like <a href="http://sites.google.com/">Google Sites</a> or <a href="//www.blogger.com/">Blogger</a>; use services like <a href="http://docs.google.com/">Google Docs</a> to host documents or forms; or use a <a href="https://www.google.com/search?q=content+delivery+network">content delivery network</a> (CDN).</li> <li><b>Use lightweight file formats.</b><br />If you offer downloadable information, try to make the downloaded files as small as possible by using lightweight file formats. For example, offering the same data as a plain text file rather than a PDF can allow users to download the exact same content at a fraction of the filesize (thereby lightening the load on your servers). Also keep in mind that, if it’s not possible to use plain text files, PDFs generated from textual content are more lightweight than PDFs with images in them. Text-based PDFs are also <a href="http://googlewebmastercentral.blogspot.com/2011/09/pdfs-in-google-search-results.html">easier for Google to understand and index fully</a>.</li> <li><b>Make tabular data available in CSV and XML formats.</b><br />If you offer numerical or tabular data (data displayed in tables), we recommend also providing it in CSV and/or XML format. These filetypes are relatively lightweight and make it easy for external developers to use your data in external applications or services in cases where you want the data to reach as many people as possible, such as in the wake of a natural disaster.</li> </ul> We’d love to hear your tips and tricks for weathering traffic spikes—come join us in our <a href="//www.google.com/support/forum/p/Webmasters?hl=en">Webmaster Help Forum</a>.<br /> <br /> <span class="byline-author">Posted by <a href="https://plus.google.com/107122646256015117642/about" rel="author">Susan Moskwa</a>, Webmaster Trends Analyst</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Preparing your site for a traffic spike&url=https://webmasters.googleblog.com/2012/02/preparing-your-site-for-traffic-spike.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2012/02/preparing-your-site-for-traffic-spike.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2012/02/preparing-your-site-for-traffic-spike.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/general%20tips?hl=en_US' rel='tag'> general tips </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=en_US' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='801196404445679808' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2011/07/page-speed-service-web-performance.html?hl=en_US' itemprop='url' title='Page Speed Service - Web Performance, Delivered.'> Page Speed Service - Web Performance, Delivered. </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, July 28, 2011 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> Webmaster level: Advanced<br /> <br /> Two years ago we released the <a href="http://code.google.com/speed/page-speed/docs/extension.html">Page Speed browser extension</a> and earlier this year the <a href="http://code.google.com/apis/pagespeedonline/">Page Speed Online API</a> to provide developers with specific suggestions to make their web pages faster. Last year we released <a href="http://code.google.com/speed/page-speed/docs/module.html">mod_pagespeed</a>, an Apache module, to automatically rewrite web pages. To further simplify the life of webmasters and to avoid the hassles of installation, today we are releasing the latest addition to the Page Speed family: <a href="http://code.google.com/speed/pss/index.html">Page Speed Service</a>.<br /> <br /> Page Speed Service is an online service that automatically speeds up loading of your web pages. To use the service, you need to sign up and point your site’s DNS entry to Google. Page Speed Service fetches content from your servers, rewrites your pages by applying web performance best practices, and serves them to end users via Google's servers across the globe. Your users will continue to access your site just as they did before, only with faster load times. Now you don’t have to worry about concatenating CSS, compressing images, caching, gzipping resources or other web performance best practices.<br /> <br /> In our testing we have seen speed improvements of <a href="https://code.google.com/speed/pss/gallery.html">25% to 60% on several sites</a>. But we know you care most about the numbers for your site, so <a href="https://code.google.com/speed/pss/docs/tryit.html">check out</a> how much Page Speed Service can speed up your site. If you’re encouraged by the results, please <a href="https://docs.google.com/a/google.com/spreadsheet/viewform?hl=en_US&formkey=dDdjcmNBZFZsX2c0SkJPQnR3aGdnd0E6MQ">sign up</a>. If not, be sure to check back later. We are diligently working on adding more improvements to the service.<br /> <br /> At this time, Page Speed Service is being offered to a limited set of webmasters free of charge. Pricing will be competitive and details will be made available later. You can request access to the service by filling out this <a href="https://docs.google.com/a/google.com/spreadsheet/viewform?hl=en_US&formkey=dDdjcmNBZFZsX2c0SkJPQnR3aGdnd0E6MQ">web form</a>.<br /> <br /> <span class="byline-author">Posted by <a href="https://plus.google.com/103427061100906911694/about" rel="author">Ram Ramani</a>, Engineering Manager</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> Webmaster level: Advanced<br /> <br /> Two years ago we released the <a href="http://code.google.com/speed/page-speed/docs/extension.html">Page Speed browser extension</a> and earlier this year the <a href="http://code.google.com/apis/pagespeedonline/">Page Speed Online API</a> to provide developers with specific suggestions to make their web pages faster. Last year we released <a href="http://code.google.com/speed/page-speed/docs/module.html">mod_pagespeed</a>, an Apache module, to automatically rewrite web pages. To further simplify the life of webmasters and to avoid the hassles of installation, today we are releasing the latest addition to the Page Speed family: <a href="http://code.google.com/speed/pss/index.html">Page Speed Service</a>.<br /> <br /> Page Speed Service is an online service that automatically speeds up loading of your web pages. To use the service, you need to sign up and point your site’s DNS entry to Google. Page Speed Service fetches content from your servers, rewrites your pages by applying web performance best practices, and serves them to end users via Google's servers across the globe. Your users will continue to access your site just as they did before, only with faster load times. Now you don’t have to worry about concatenating CSS, compressing images, caching, gzipping resources or other web performance best practices.<br /> <br /> In our testing we have seen speed improvements of <a href="https://code.google.com/speed/pss/gallery.html">25% to 60% on several sites</a>. But we know you care most about the numbers for your site, so <a href="https://code.google.com/speed/pss/docs/tryit.html">check out</a> how much Page Speed Service can speed up your site. If you’re encouraged by the results, please <a href="https://docs.google.com/a/google.com/spreadsheet/viewform?hl=en_US&formkey=dDdjcmNBZFZsX2c0SkJPQnR3aGdnd0E6MQ">sign up</a>. If not, be sure to check back later. We are diligently working on adding more improvements to the service.<br /> <br /> At this time, Page Speed Service is being offered to a limited set of webmasters free of charge. Pricing will be competitive and details will be made available later. You can request access to the service by filling out this <a href="https://docs.google.com/a/google.com/spreadsheet/viewform?hl=en_US&formkey=dDdjcmNBZFZsX2c0SkJPQnR3aGdnd0E6MQ">web form</a>.<br /> <br /> <span class="byline-author">Posted by <a href="https://plus.google.com/103427061100906911694/about" rel="author">Ram Ramani</a>, Engineering Manager</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Page Speed Service - Web Performance, Delivered.&url=https://webmasters.googleblog.com/2011/07/page-speed-service-web-performance.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2011/07/page-speed-service-web-performance.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2011/07/page-speed-service-web-performance.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=en_US' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/products%20and%20services?hl=en_US' rel='tag'> products and services </a> </span> </div> </div> </div> <div class='post' data-id='6569043583837449740' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2011/05/page-speed-online-has-shiny-new-api.html?hl=en_US' itemprop='url' title='Page Speed Online has a shiny new API'> Page Speed Online has a shiny new API </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Wednesday, May 11, 2011 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody> <tr><td style="text-align: center;"><img height="80" src="//1.bp.blogspot.com/-oFoVAooKyWs/TchD1KTSlOI/AAAAAAAAAaE/IyyrUG_brds/s1600/Andrew%2BOates.png" style="margin-left: auto; margin-right: auto; text-align: right;"></td></tr> <tr><td class="tr-caption" style="text-align: center;">Andrew</td></tr> </tbody></table> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody> <tr><td style="text-align: center;"><img height="80" src="//4.bp.blogspot.com/-qdFrJD8lJpQ/TchjreaUz8I/AAAAAAAAAac/3hQYo3f6w6k/s1600/photo.jpeg" style="margin-left: auto; margin-right: auto; text-align: right;"></td></tr> <tr><td class="tr-caption" style="text-align: center;">Richard</td></tr> </tbody></table> Webmaster level: intermediate<br /> <br /> A few weeks ago, we introduced <a href="http://googlecode.blogspot.com/2011/03/introducing-page-speed-online-with.html">Page Speed Online</a>, a web-based performance analysis tool that gives developers optimization suggestions. Almost immediately, developers asked us to make an API available to integrate into other tools and their regression testing suites. We were happy to oblige.<br /> <br /> Today, as part of Google I/O, we are excited to introduce the Page Speed Online API as part of the Google APIs. With this API, developers now have the ability to integrate performance analysis very simply in their command-line tools and web performance dashboards.<br /> <br /> We have provided a <a href="https://code.google.com/apis/pagespeedonline/v1/getting_started.html">getting started guide</a> that helps you to get up and running quickly, understand the API, and start monitoring the performance improvements that you make to your web pages. Not only that, in the request, you’ll be able to specify whether you’d like to see mobile or desktop analysis, and also get Page Speed suggestions in one of the <a href="http://code.google.com/speed/page-speed/docs/languages.html">40 languages</a> that we support, giving API access to the vast majority of developers in their native or preferred language.<br /> <br /> We’re also pleased to share that the WordPress plugin <a href="http://wordpress.org/extend/plugins/w3-total-cache/">W3 Total Cache</a> now uses the Page Speed Online API to provide Page Speed suggestions to WordPress users, right in the WordPress dashboard. “The Page Speed tool itself provides extremely pointed and valuable insight into performance pitfalls. Providing that tool via an API has allowed me to directly correlate that feedback with actionable solutions that W3 Total Cache provides.” said Frederick Townes, CTO Mashable and W3 Total Cache author.<br /> <br /> Take the Page Speed Online API for a spin and send us feedback on our <a href="https://groups.google.com/group/page-speed-discuss/?pli=1">mailing list</a>. We’d love to hear your experience integrating the new Page Speed Online API.<br /> <br /> <em>Andrew Oates is a Software Engineer on the Page Speed Team in Google's Cambridge, Massachusetts office. You can find him in the credits for the Pixar film </em>Up<em>.</em><br /> <br /> <em>Richard Rabbat is the Product Management Lead on the "Make the Web Faster" initiative. He has launched Page Speed, mod_pagespeed and WebP. At Google since 2006, Richard works with engineering teams across the world.</em><br /> <br /> <span class="byline-author">Posted by Scott Knaster, <a href="https://profiles.google.com/andrewoates/about" rel="author">Andrew Oates</a> and <a href="https://plus.google.com/106992973003627941930/about" rel="author">Richard Rabbat</a>, Page Speed Team</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody> <tr><td style="text-align: center;"><img height="80" src="//1.bp.blogspot.com/-oFoVAooKyWs/TchD1KTSlOI/AAAAAAAAAaE/IyyrUG_brds/s1600/Andrew%2BOates.png" style="margin-left: auto; margin-right: auto; text-align: right;"></td></tr> <tr><td class="tr-caption" style="text-align: center;">Andrew</td></tr> </tbody></table> <table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody> <tr><td style="text-align: center;"><img height="80" src="//4.bp.blogspot.com/-qdFrJD8lJpQ/TchjreaUz8I/AAAAAAAAAac/3hQYo3f6w6k/s1600/photo.jpeg" style="margin-left: auto; margin-right: auto; text-align: right;"></td></tr> <tr><td class="tr-caption" style="text-align: center;">Richard</td></tr> </tbody></table> Webmaster level: intermediate<br /> <br /> A few weeks ago, we introduced <a href="http://googlecode.blogspot.com/2011/03/introducing-page-speed-online-with.html">Page Speed Online</a>, a web-based performance analysis tool that gives developers optimization suggestions. Almost immediately, developers asked us to make an API available to integrate into other tools and their regression testing suites. We were happy to oblige.<br /> <br /> Today, as part of Google I/O, we are excited to introduce the Page Speed Online API as part of the Google APIs. With this API, developers now have the ability to integrate performance analysis very simply in their command-line tools and web performance dashboards.<br /> <br /> We have provided a <a href="https://code.google.com/apis/pagespeedonline/v1/getting_started.html">getting started guide</a> that helps you to get up and running quickly, understand the API, and start monitoring the performance improvements that you make to your web pages. Not only that, in the request, you’ll be able to specify whether you’d like to see mobile or desktop analysis, and also get Page Speed suggestions in one of the <a href="http://code.google.com/speed/page-speed/docs/languages.html">40 languages</a> that we support, giving API access to the vast majority of developers in their native or preferred language.<br /> <br /> We’re also pleased to share that the WordPress plugin <a href="http://wordpress.org/extend/plugins/w3-total-cache/">W3 Total Cache</a> now uses the Page Speed Online API to provide Page Speed suggestions to WordPress users, right in the WordPress dashboard. “The Page Speed tool itself provides extremely pointed and valuable insight into performance pitfalls. Providing that tool via an API has allowed me to directly correlate that feedback with actionable solutions that W3 Total Cache provides.” said Frederick Townes, CTO Mashable and W3 Total Cache author.<br /> <br /> Take the Page Speed Online API for a spin and send us feedback on our <a href="https://groups.google.com/group/page-speed-discuss/?pli=1">mailing list</a>. We’d love to hear your experience integrating the new Page Speed Online API.<br /> <br /> <em>Andrew Oates is a Software Engineer on the Page Speed Team in Google's Cambridge, Massachusetts office. You can find him in the credits for the Pixar film </em>Up<em>.</em><br /> <br /> <em>Richard Rabbat is the Product Management Lead on the "Make the Web Faster" initiative. He has launched Page Speed, mod_pagespeed and WebP. At Google since 2006, Richard works with engineering teams across the world.</em><br /> <br /> <span class="byline-author">Posted by Scott Knaster, <a href="https://profiles.google.com/andrewoates/about" rel="author">Andrew Oates</a> and <a href="https://plus.google.com/106992973003627941930/about" rel="author">Richard Rabbat</a>, Page Speed Team</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Page Speed Online has a shiny new API&url=https://webmasters.googleblog.com/2011/05/page-speed-online-has-shiny-new-api.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2011/05/page-speed-online-has-shiny-new-api.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2011/05/page-speed-online-has-shiny-new-api.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=en_US' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='5706114667092988415' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2011/03/introducing-page-speed-online-with.html?hl=en_US' itemprop='url' title='Introducing Page Speed Online, with mobile support'> Introducing Page Speed Online, with mobile support </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Thursday, March 31, 2011 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> <div dir="ltr" style="text-align: left;" trbidi="on"> Webmaster level: intermediate<br /> <br /> At Google, we’re striving to make the whole web fast. As part of that effort, we’re launching a new web-based tool in Google Labs, <a href="http://pagespeed.googlelabs.com/">Page Speed Online</a>, which analyzes the performance of web pages and gives specific suggestions for making them faster. Page Speed Online is available from any browser, at any time. This allows website owners to get immediate access to Page Speed performance suggestions so they can make their pages faster.<br /> <br /> In addition, we’ve added a new feature: the ability to get Page Speed suggestions customized for the mobile version of a page, specifically smartphones. Due to the relatively limited CPU capabilities of mobile devices, the high round-trip times of mobile networks, and rapid growth of mobile usage, understanding and optimizing for mobile performance is even more critical than for the desktop, so Page Speed Online now allows you to easily analyze and optimize your site for mobile performance. The mobile recommendations are tuned for the unique characteristics of mobile devices, and contain several best practices that go beyond the recommendations for desktop browsers, in order to create a faster mobile experience. New mobile-targeted best practices include <a href="http://code.google.com/speed/page-speed/docs/mobile.html#CacheLandingPageRedirects">eliminating uncacheable landing page redirects</a> and <a href="http://code.google.com/speed/page-speed/docs/mobile.html#DeferParsingJS">reducing the amount of JavaScript parsed during the page load</a>, two common issues that slow down mobile pages today.<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="//1.bp.blogspot.com/-g0pIbbX0NYw/TZTQSKr22pI/AAAAAAAACLs/Pu91z-r6GxU/s1600/Google%2BChromeScreenSnapz003.png" imageanchor="1"><img border="0" height="181" src="//1.bp.blogspot.com/-g0pIbbX0NYw/TZTQSKr22pI/AAAAAAAACLs/Pu91z-r6GxU/s320/Google%2BChromeScreenSnapz003.png" width="320"></a></div> <br /> Page Speed Online is powered by the same <a href="https://groups.google.com/group/page-speed-discuss/browse_thread/thread/ea344d570594e0e1">Page Speed SDK</a> that powers the Chrome and Firefox extensions and <a href="http://www.webpagetest.org/">webpagetest.org</a>.<br /> <br /> Please give <a href="http://pagespeed.googlelabs.com/">Page Speed Online</a> a try. We’re eager to hear your feedback on our <a href="https://groups.google.com/group/page-speed-discuss/">mailing list</a> and how you’re using it to optimize your site. <br /> <br /> <span class="byline-author">Posted by <a href="https://profiles.google.com/andrewoates/about" rel="author">Andrew Oates</a> and <a href="https://plus.google.com/106992973003627941930/about" rel="author">Richard Rabbat</a>, Page Speed team</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> <div dir="ltr" style="text-align: left;" trbidi="on"> Webmaster level: intermediate<br /> <br /> At Google, we’re striving to make the whole web fast. As part of that effort, we’re launching a new web-based tool in Google Labs, <a href="http://pagespeed.googlelabs.com/">Page Speed Online</a>, which analyzes the performance of web pages and gives specific suggestions for making them faster. Page Speed Online is available from any browser, at any time. This allows website owners to get immediate access to Page Speed performance suggestions so they can make their pages faster.<br /> <br /> In addition, we’ve added a new feature: the ability to get Page Speed suggestions customized for the mobile version of a page, specifically smartphones. Due to the relatively limited CPU capabilities of mobile devices, the high round-trip times of mobile networks, and rapid growth of mobile usage, understanding and optimizing for mobile performance is even more critical than for the desktop, so Page Speed Online now allows you to easily analyze and optimize your site for mobile performance. The mobile recommendations are tuned for the unique characteristics of mobile devices, and contain several best practices that go beyond the recommendations for desktop browsers, in order to create a faster mobile experience. New mobile-targeted best practices include <a href="http://code.google.com/speed/page-speed/docs/mobile.html#CacheLandingPageRedirects">eliminating uncacheable landing page redirects</a> and <a href="http://code.google.com/speed/page-speed/docs/mobile.html#DeferParsingJS">reducing the amount of JavaScript parsed during the page load</a>, two common issues that slow down mobile pages today.<br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="//1.bp.blogspot.com/-g0pIbbX0NYw/TZTQSKr22pI/AAAAAAAACLs/Pu91z-r6GxU/s1600/Google%2BChromeScreenSnapz003.png" imageanchor="1"><img border="0" height="181" src="//1.bp.blogspot.com/-g0pIbbX0NYw/TZTQSKr22pI/AAAAAAAACLs/Pu91z-r6GxU/s320/Google%2BChromeScreenSnapz003.png" width="320"></a></div> <br /> Page Speed Online is powered by the same <a href="https://groups.google.com/group/page-speed-discuss/browse_thread/thread/ea344d570594e0e1">Page Speed SDK</a> that powers the Chrome and Firefox extensions and <a href="http://www.webpagetest.org/">webpagetest.org</a>.<br /> <br /> Please give <a href="http://pagespeed.googlelabs.com/">Page Speed Online</a> a try. We’re eager to hear your feedback on our <a href="https://groups.google.com/group/page-speed-discuss/">mailing list</a> and how you’re using it to optimize your site. <br /> <br /> <span class="byline-author">Posted by <a href="https://profiles.google.com/andrewoates/about" rel="author">Andrew Oates</a> and <a href="https://plus.google.com/106992973003627941930/about" rel="author">Richard Rabbat</a>, Page Speed team</span></div> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Introducing Page Speed Online, with mobile support&url=https://webmasters.googleblog.com/2011/03/introducing-page-speed-online-with.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2011/03/introducing-page-speed-online-with.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2011/03/introducing-page-speed-online-with.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/general%20tips?hl=en_US' rel='tag'> general tips </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/mobile?hl=en_US' rel='tag'> mobile </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='1105552214782691788' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2010/05/you-and-site-performance-sitting-in.html?hl=en_US' itemprop='url' title='You and site performance, sitting in a tree...'> You and site performance, sitting in a tree... </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Sunday, May 02, 2010 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Webmaster Level: Beginner to Intermediate<br /><br />...k, i, s, s, i, n, g! Perhaps you heard our announcement that <a href="http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html">speed is a signal in rankings</a>, but didn’t know where to start. We’d like to help foster a lasting relationship between you and a responsive experience for your users. Last week I filmed my updated presentation from "<a href="http://searchmarketingexpo.com/west/2010/full_agenda2#350">The Need For Speed: Google Says It Matters</a>" which includes three first steps to understanding site performance. So grab headphones and some popcorn, then <a href="//www.google.com/support/webmasters/bin/topic.py?topic=8469">verify ownership of your website</a> and download a <a href="http://code.google.com/speed/page-speed/">plugin</a>, and we’ll all be comfy with site performance in no time.<br /><br /><div style="text-align:center"><object height="340" width="560"><param name="movie" value="//www.youtube.com/v/OpMfx_Zie2g&hl=en_US&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/OpMfx_Zie2g&hl=en_US&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></div><br /><br />Just curious about the Q&A? No problem! Here you go:<br /><br /><i>Is it possible to check my server response time from different areas around the world?</i><blockquote>Yes. <a href="http://www.webpagetest.org/test">WebPagetest.org</a> can test performance from the United States (both East and West Coast—go West Coast! :), United Kingdom, China, and New Zealand.</blockquote><i>What's a good response time to aim for?</i><blockquote>First, if your competition is fast, they may provide a better user experience than your site for your same audience. In that case, you may want to make your site <a href="//www.google.com/search?q=six+million+dollar+man">better, stronger, faster...</a><br /><br />Otherwise, studies by <a href="http://www.akamai.com/html/about/press/releases/2009/press_091409.html">Akamai</a> claim 2 seconds as the threshold for ecommerce site "acceptability." Just as an FYI, at Google we aim for under a half-second.</blockquote><i>Does progressive rendering help users?</i><blockquote>Definitely! Progressive rendering is when a browser can display content as it’s available incrementally rather than waiting for all the content to display at once. This provides users faster visual feedback and helps them feel more in control. <a href="http://www.bing.com/">Bing</a> <a href="http://assets.en.oreilly.com/1/event/29/The%20User%20and%20Business%20Impact%20of%20Server%20Delays,%20Additional%20Bytes,%20and%20HTTP%20Chunking%20in%20Web%20Search%20Presentation.pptx">experimented with progressive rendering</a> by sending users their visual header (like the logo and searchbox) quickly, then the results/ads once they were available. Bing found a 0.7% increase in satisfaction with progressive rendering. They commented that this improvement compared with full feature rollout.<br /><br />How can you implement progressive rendering techniques on your site? Put <a href="http://code.google.com/speed/page-speed/docs/rtt.html#PutStylesBeforeScripts">stylesheets at the top of the page</a>. This allows a browser to start displaying content ASAP.</blockquote><br />Page speed plugin, videos, articles, and help forum are all found at <a href="http://code.google.com/speed/">code.google.com/speed/</a>.<br /><br /><span class="byline-author">Written by Maile Ohye, Developer Programs Tech Lead</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Webmaster Level: Beginner to Intermediate<br /><br />...k, i, s, s, i, n, g! Perhaps you heard our announcement that <a href="http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html">speed is a signal in rankings</a>, but didn’t know where to start. We’d like to help foster a lasting relationship between you and a responsive experience for your users. Last week I filmed my updated presentation from "<a href="http://searchmarketingexpo.com/west/2010/full_agenda2#350">The Need For Speed: Google Says It Matters</a>" which includes three first steps to understanding site performance. So grab headphones and some popcorn, then <a href="//www.google.com/support/webmasters/bin/topic.py?topic=8469">verify ownership of your website</a> and download a <a href="http://code.google.com/speed/page-speed/">plugin</a>, and we’ll all be comfy with site performance in no time.<br /><br /><div style="text-align:center"><object height="340" width="560"><param name="movie" value="//www.youtube.com/v/OpMfx_Zie2g&hl=en_US&fs=1&rel=0"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="//www.youtube.com/v/OpMfx_Zie2g&hl=en_US&fs=1&rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></div><br /><br />Just curious about the Q&A? No problem! Here you go:<br /><br /><i>Is it possible to check my server response time from different areas around the world?</i><blockquote>Yes. <a href="http://www.webpagetest.org/test">WebPagetest.org</a> can test performance from the United States (both East and West Coast—go West Coast! :), United Kingdom, China, and New Zealand.</blockquote><i>What's a good response time to aim for?</i><blockquote>First, if your competition is fast, they may provide a better user experience than your site for your same audience. In that case, you may want to make your site <a href="//www.google.com/search?q=six+million+dollar+man">better, stronger, faster...</a><br /><br />Otherwise, studies by <a href="http://www.akamai.com/html/about/press/releases/2009/press_091409.html">Akamai</a> claim 2 seconds as the threshold for ecommerce site "acceptability." Just as an FYI, at Google we aim for under a half-second.</blockquote><i>Does progressive rendering help users?</i><blockquote>Definitely! Progressive rendering is when a browser can display content as it’s available incrementally rather than waiting for all the content to display at once. This provides users faster visual feedback and helps them feel more in control. <a href="http://www.bing.com/">Bing</a> <a href="http://assets.en.oreilly.com/1/event/29/The%20User%20and%20Business%20Impact%20of%20Server%20Delays,%20Additional%20Bytes,%20and%20HTTP%20Chunking%20in%20Web%20Search%20Presentation.pptx">experimented with progressive rendering</a> by sending users their visual header (like the logo and searchbox) quickly, then the results/ads once they were available. Bing found a 0.7% increase in satisfaction with progressive rendering. They commented that this improvement compared with full feature rollout.<br /><br />How can you implement progressive rendering techniques on your site? Put <a href="http://code.google.com/speed/page-speed/docs/rtt.html#PutStylesBeforeScripts">stylesheets at the top of the page</a>. This allows a browser to start displaying content ASAP.</blockquote><br />Page speed plugin, videos, articles, and help forum are all found at <a href="http://code.google.com/speed/">code.google.com/speed/</a>.<br /><br /><span class="byline-author">Written by Maile Ohye, Developer Programs Tech Lead</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:You and site performance, sitting in a tree...&url=https://webmasters.googleblog.com/2010/05/you-and-site-performance-sitting-in.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2010/05/you-and-site-performance-sitting-in.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2010/05/you-and-site-performance-sitting-in.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/beginner?hl=en_US' rel='tag'> beginner </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/general%20tips?hl=en_US' rel='tag'> general tips </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=en_US' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='5595329859148876919' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2010/04/using-site-speed-in-web-search-ranking.html?hl=en_US' itemprop='url' title='Using site speed in web search ranking'> Using site speed in web search ranking </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> Friday, April 09, 2010 </span> </div> </div> <div class='post-body'> <div class='post-content' itemprop='articleBody'> <script type='text/template'> Webmaster Level: All<br /><br />You may have heard that here at Google we're obsessed with speed, in <a href="//www.google.com/chrome/intl/en/more/speed.html">our products</a> and <a href="http://googleblog.blogspot.com/search/label/faster%20web">on the web</a>. As part of that effort, today we're including a new signal in our search ranking algorithms: site speed. Site speed reflects how quickly a website responds to web requests.<br /><br />Speeding up websites is important — not just to site owners, but to all Internet users. Faster sites create happy users and we've seen in our <a href="http://googleresearch.blogspot.com/2009/06/speed-matters.html">internal studies</a> that when a site responds slowly, visitors spend less time there. But faster sites don't just improve user experience; recent data shows that improving site speed also <a href="http://radar.oreilly.com/2009/07/velocity-making-your-site-fast.html">reduces operating costs</a>. Like us, our users place a lot of value in speed — that's why we've decided to take site speed into account in our search rankings. We use a variety of sources to determine the speed of a site relative to other sites.<br /><br />If you are a site owner, webmaster or a web author, here are some free tools that you can use to evaluate the speed of your site:<ul><li><a href="http://code.google.com/speed/page-speed/">Page Speed</a>, an open source Firefox/Firebug add-on that evaluates the performance of web pages and gives suggestions for improvement.</li><li><a href="http://developer.yahoo.com/yslow/">YSlow</a>, a free tool from Yahoo! that suggests ways to improve website speed.</li><li><a href="http://www.webpagetest.org/">WebPagetest</a> shows a waterfall view of your pages' load performance plus an optimization checklist.</li><li>In <a href="//www.google.com/webmasters/tools">Webmaster Tools</a>, Labs > Site Performance shows the speed of your website as experienced by users around the world as in the chart below. We've also blogged about <a href="http://googlewebmastercentral.blogspot.com/2009/12/your-sites-performance-in-webmaster.html">site performance</a>.</li></ul><div style="text-align:center"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUnqnWFQ-RTrxel8Bxd161grrFzH_VHYO1xtXKrHlLSJDkPJw1o5xRxG4C_JN9PqEIv-rx31eI-Zks_-6scSOH8a4xJgrJH9T1t8Z9gumv8D0iQBw7T_c_FoLdz3NbOaKRoyl5/s1600/Picture+83.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5458197260750468130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUnqnWFQ-RTrxel8Bxd161grrFzH_VHYO1xtXKrHlLSJDkPJw1o5xRxG4C_JN9PqEIv-rx31eI-Zks_-6scSOH8a4xJgrJH9T1t8Z9gumv8D0iQBw7T_c_FoLdz3NbOaKRoyl5/s400/Picture+83.png" style="cursor:pointer; cursor:hand;width: 400px; height: 155px;" /></a></div><ul><li>Many other tools on <a href="http://code.google.com/speed">code.google.com/speed</a>.</li></ul>While site speed is a new signal, it doesn't carry as much weight as the <a href="//www.youtube.com/watch?v=muSIzHurn4U">relevance of a page</a>. Currently, fewer than 1% of search queries are affected by the site speed signal in our implementation and the signal for site speed only applies for visitors searching in English on Google.com at this point. We launched this change a few weeks back after rigorous testing. If you haven't seen much change to your site rankings, then this site speed change possibly did not impact your site.<br /><br />We encourage you to start looking at your site's speed (the tools above provide a great starting point) — not only to improve your ranking in search engines, but also to improve everyone's experience on the Internet.<br /><br /><span class="byline-author">Posted by Amit Singhal, Google Fellow and Matt Cutts, Principal Engineer, Google Search Quality Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </script> <noscript> Webmaster Level: All<br /><br />You may have heard that here at Google we're obsessed with speed, in <a href="//www.google.com/chrome/intl/en/more/speed.html">our products</a> and <a href="http://googleblog.blogspot.com/search/label/faster%20web">on the web</a>. As part of that effort, today we're including a new signal in our search ranking algorithms: site speed. Site speed reflects how quickly a website responds to web requests.<br /><br />Speeding up websites is important — not just to site owners, but to all Internet users. Faster sites create happy users and we've seen in our <a href="http://googleresearch.blogspot.com/2009/06/speed-matters.html">internal studies</a> that when a site responds slowly, visitors spend less time there. But faster sites don't just improve user experience; recent data shows that improving site speed also <a href="http://radar.oreilly.com/2009/07/velocity-making-your-site-fast.html">reduces operating costs</a>. Like us, our users place a lot of value in speed — that's why we've decided to take site speed into account in our search rankings. We use a variety of sources to determine the speed of a site relative to other sites.<br /><br />If you are a site owner, webmaster or a web author, here are some free tools that you can use to evaluate the speed of your site:<ul><li><a href="http://code.google.com/speed/page-speed/">Page Speed</a>, an open source Firefox/Firebug add-on that evaluates the performance of web pages and gives suggestions for improvement.</li><li><a href="http://developer.yahoo.com/yslow/">YSlow</a>, a free tool from Yahoo! that suggests ways to improve website speed.</li><li><a href="http://www.webpagetest.org/">WebPagetest</a> shows a waterfall view of your pages' load performance plus an optimization checklist.</li><li>In <a href="//www.google.com/webmasters/tools">Webmaster Tools</a>, Labs > Site Performance shows the speed of your website as experienced by users around the world as in the chart below. We've also blogged about <a href="http://googlewebmastercentral.blogspot.com/2009/12/your-sites-performance-in-webmaster.html">site performance</a>.</li></ul><div style="text-align:center"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUnqnWFQ-RTrxel8Bxd161grrFzH_VHYO1xtXKrHlLSJDkPJw1o5xRxG4C_JN9PqEIv-rx31eI-Zks_-6scSOH8a4xJgrJH9T1t8Z9gumv8D0iQBw7T_c_FoLdz3NbOaKRoyl5/s1600/Picture+83.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5458197260750468130" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUnqnWFQ-RTrxel8Bxd161grrFzH_VHYO1xtXKrHlLSJDkPJw1o5xRxG4C_JN9PqEIv-rx31eI-Zks_-6scSOH8a4xJgrJH9T1t8Z9gumv8D0iQBw7T_c_FoLdz3NbOaKRoyl5/s400/Picture+83.png" style="cursor:pointer; cursor:hand;width: 400px; height: 155px;" /></a></div><ul><li>Many other tools on <a href="http://code.google.com/speed">code.google.com/speed</a>.</li></ul>While site speed is a new signal, it doesn't carry as much weight as the <a href="//www.youtube.com/watch?v=muSIzHurn4U">relevance of a page</a>. Currently, fewer than 1% of search queries are affected by the site speed signal in our implementation and the signal for site speed only applies for visitors searching in English on Google.com at this point. We launched this change a few weeks back after rigorous testing. If you haven't seen much change to your site rankings, then this site speed change possibly did not impact your site.<br /><br />We encourage you to start looking at your site's speed (the tools above provide a great starting point) — not only to improve your ranking in search engines, but also to improve everyone's experience on the Internet.<br /><br /><span class="byline-author">Posted by Amit Singhal, Google Fellow and Matt Cutts, Principal Engineer, Google Search Quality Team</span> <span itemprop='author' itemscope='itemscope' itemtype='http://schema.org/Person'> <meta content='https://plus.google.com/116899029375914044550' itemprop='url'/> </span> </noscript> </div> </div> <div class='share'> <span class='twitter-custom social-wrapper' data-href='http://twitter.com/share?text=Official Google Webmaster Central Blog:Using site speed in web search ranking&url=https://webmasters.googleblog.com/2010/04/using-site-speed-in-web-search-ranking.html?hl=en_US&via=googlewmc'> <img alt='Share on Twitter' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_twitter_black_24dp.png' width='24'/> </span> <span class='fb-custom social-wrapper' data-href='https://www.facebook.com/sharer.php?u=https://webmasters.googleblog.com/2010/04/using-site-speed-in-web-search-ranking.html?hl=en_US'> <img alt='Share on Facebook' height='24' src='https://www.gstatic.com/images/icons/material/system/2x/post_facebook_black_24dp.png' width='24'/> </span> </div> <div class='post-footer'> <div class='cmt_iframe_holder' data-href='https://webmasters.googleblog.com/2010/04/using-site-speed-in-web-search-ranking.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> <span class='labels-caption'> Labels: </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=en_US' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/beginner?hl=en_US' rel='tag'> beginner </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=en_US' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=en_US' rel='tag'> performance </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/search%20results?hl=en_US' rel='tag'> search results </a> </span> </div> </div> </div> <div class='blog-pager' id='blog-pager'> <a class='home-link' href='https://webmasters.googleblog.com/?hl=en_US'> <i class='material-icons'>  </i> </a> <i class='material-icons disabled'>  </i> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='https://webmasters.googleblog.com/search/label/performance?updated-max=2010-04-09T11:00:00-07:00&max-results=20&start=20&by-date=false&hl=en_US' id='Blog1_blog-pager-older-link' title='Older Posts'> <i class='material-icons'>  </i> </a> </span> </div> <div class='clear'></div> </div></div> </div> </div> <div class='col-right'> <div class='section' id='sidebar-top'><div class='widget HTML' data-version='1' id='HTML9'> <div class='widget-content'> <a href="https://www.google.com/webmasters/tools/mobile-friendly/?utm_source=wmc-blog&utm_medium=referral&utm_campaign=blog-nav"><img src="https://lh3.googleusercontent.com/-osGJupx0-HY/VQta1nmaAPI/AAAAAAAACfs/UdMPzubsXFk/w80-h1368-no/blog%2Bpromo.png" align="left" width="80" /></a> Hey! <a href="https://search.google.com/test/mobile-friendly">Check here if your site is mobile-friendly.</a> </div> <div class='clear'></div> </div><div class='widget HTML' data-version='1' id='HTML10'> <div class='widget-content'> <div class='searchBox'> <input type='text' title='Search This Blog' placeholder='Search blog ...' /> </div> </div> <div class='clear'></div> </div></div> <div id='aside'> <div class='section' id='sidebar'><div class='widget Label' data-version='1' id='Label1'> <div class='tab'> <img class='sidebar-icon' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYpJREFUeNrs2aFuwzAQBmAvKRkMKRjZA4QMDJaWFgyMjuzFRg37DIUlA3uFkoGQSaWzJU+tpri5O9+l/zSfdFJlpe59yTmyVedq1PjfcZMZ70NuQnaF8w8htyE/rABtpviXkLcK88c5HhLkMBfgVan43zfFBNGMjHVGT/s55KP2pAvidbGHd+nzKt1RKSLG3rKF1iPFv6UWiPke8i7kEqGdGsI1O+LYVdqJAjgirwkKYD0ytkJBUNbAMvX8V3q9PhUsYvU1sWD8SO/sQvx2ahxOiNoJCSBCoAHYCEQAC4EKICOQASQEOmAS8RcAFxFN5hiIiugpgC3wk9hQAHH/70EBHXUN7IER5EWMiBgo2+nzOKQv9SCAeEM/OQAkhE/ncccFICB87qzQMia5FsJfOui0zMnmRvipU1ormHQuxGTxUsAcCFLxJQBLBLn4UoAFglW8BkATwS5eC6CBEBWvCShBiIvXBkgQRcVbADiI4uKtABSESvGWgB9EzHt3+tNwyO0qa9SoIYtvAQYAqDJhaWWeMecAAAAASUVORK5CYII='/> <h2> Labels </h2> <i class='material-icons arrow'>  </i> </div> <div class='widget-content list-label-widget-content'> <ul> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/accessibility?hl=en_US'> accessibility </a> <span dir='ltr'> 10 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/advanced?hl=en_US'> advanced </a> <span dir='ltr'> 195 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/AMP?hl=en_US'> AMP </a> <span dir='ltr'> 13 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Android?hl=en_US'> Android </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/API?hl=en_US'> API </a> <span dir='ltr'> 7 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/apps?hl=en_US'> apps </a> <span dir='ltr'> 7 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/autocomplete?hl=en_US'> autocomplete </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/beginner?hl=en_US'> beginner </a> <span dir='ltr'> 173 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/CAPTCHA?hl=en_US'> CAPTCHA </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Chrome?hl=en_US'> Chrome </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/cms?hl=en_US'> cms </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/crawling%20and%20indexing?hl=en_US'> crawling and indexing </a> <span dir='ltr'> 158 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/encryption?hl=en_US'> encryption </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/events?hl=en_US'> events </a> <span dir='ltr'> 51 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/feedback%20and%20communication?hl=en_US'> feedback and communication </a> <span dir='ltr'> 83 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/forums?hl=en_US'> forums </a> <span dir='ltr'> 5 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/general%20tips?hl=en_US'> general tips </a> <span dir='ltr'> 90 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/geotargeting?hl=en_US'> geotargeting </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Google%20Assistant?hl=en_US'> Google Assistant </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Google%20I%2FO?hl=en_US'> Google I/O </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Google%20Images?hl=en_US'> Google Images </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Google%20News?hl=en_US'> Google News </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/hacked%20sites?hl=en_US'> hacked sites </a> <span dir='ltr'> 12 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/hangout?hl=en_US'> hangout </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/hreflang?hl=en_US'> hreflang </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/https?hl=en_US'> https </a> <span dir='ltr'> 5 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/images?hl=en_US'> images </a> <span dir='ltr'> 12 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/intermediate?hl=en_US'> intermediate </a> <span dir='ltr'> 205 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/interstitials?hl=en_US'> interstitials </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/javascript?hl=en_US'> javascript </a> <span dir='ltr'> 8 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/job%20search?hl=en_US'> job search </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/localization?hl=en_US'> localization </a> <span dir='ltr'> 21 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/malware?hl=en_US'> malware </a> <span dir='ltr'> 6 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/mobile?hl=en_US'> mobile </a> <span dir='ltr'> 63 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/mobile-friendly?hl=en_US'> mobile-friendly </a> <span dir='ltr'> 14 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/nohacked?hl=en_US'> nohacked </a> <span dir='ltr'> 1 </span> </li> <li> <span dir='ltr'> performance </span> <span dir='ltr'> 17 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/product%20expert?hl=en_US'> product expert </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/product%20experts?hl=en_US'> product experts </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/products%20and%20services?hl=en_US'> products and services </a> <span dir='ltr'> 63 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/questions?hl=en_US'> questions </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/ranking?hl=en_US'> ranking </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/recipes?hl=en_US'> recipes </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/rendering?hl=en_US'> rendering </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Responsive%20Web%20Design?hl=en_US'> Responsive Web Design </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/rich%20cards?hl=en_US'> rich cards </a> <span dir='ltr'> 7 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/rich%20results?hl=en_US'> rich results </a> <span dir='ltr'> 10 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/search%20console?hl=en_US'> search console </a> <span dir='ltr'> 35 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/search%20for%20beginners?hl=en_US'> search for beginners </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/search%20queries?hl=en_US'> search queries </a> <span dir='ltr'> 7 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/search%20results?hl=en_US'> search results </a> <span dir='ltr'> 140 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/security?hl=en_US'> security </a> <span dir='ltr'> 12 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/seo?hl=en_US'> seo </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/sitemaps?hl=en_US'> sitemaps </a> <span dir='ltr'> 46 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/speed?hl=en_US'> speed </a> <span dir='ltr'> 6 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/structured%20data?hl=en_US'> structured data </a> <span dir='ltr'> 33 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/summit?hl=en_US'> summit </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/TLDs?hl=en_US'> TLDs </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/url%20removals?hl=en_US'> url removals </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/UX?hl=en_US'> UX </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/verification?hl=en_US'> verification </a> <span dir='ltr'> 8 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/video?hl=en_US'> video </a> <span dir='ltr'> 6 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/webmaster%20community?hl=en_US'> webmaster community </a> <span dir='ltr'> 24 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/webmaster%20forum?hl=en_US'> webmaster forum </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/webmaster%20guidelines?hl=en_US'> webmaster guidelines </a> <span dir='ltr'> 57 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/webmaster%20tools?hl=en_US'> webmaster tools </a> <span dir='ltr'> 177 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/webmasters?hl=en_US'> webmasters </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/youtube%20channel?hl=en_US'> youtube channel </a> <span dir='ltr'> 6 </span> </li> </ul> <div class='clear'></div> </div> </div><div class='widget BlogArchive' data-version='1' id='BlogArchive1'> <div class='tab'> <i class='material-icons icon'>  </i> <h2> Archive </h2> <i class='material-icons arrow'>  </i> </div> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate expanded'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy toggle-open'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/?hl=en_US'> 2020 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate expanded'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/?hl=en_US'> 2019 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/?hl=en_US'> 2018 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/?hl=en_US'> 2017 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/?hl=en_US'> 2016 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/?hl=en_US'> 2015 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/?hl=en_US'> 2014 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/?hl=en_US'> 2013 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/?hl=en_US'> 2012 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/?hl=en_US'> 2011 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/?hl=en_US'> 2010 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/?hl=en_US'> 2009 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/?hl=en_US'> 2008 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/?hl=en_US'> 2007 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/07/?hl=en_US'> Jul </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/06/?hl=en_US'> Jun </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/05/?hl=en_US'> May </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/04/?hl=en_US'> Apr </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/03/?hl=en_US'> Mar </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/02/?hl=en_US'> Feb </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/01/?hl=en_US'> Jan </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'>  </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'>  </i>   </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2006/?hl=en_US'> 2006 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2006/12/?hl=en_US'> Dec </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2006/11/?hl=en_US'> Nov </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2006/10/?hl=en_US'> Oct </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2006/09/?hl=en_US'> Sep </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2006/08/?hl=en_US'> Aug </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> </div> </div> <div class='clear'></div> </div> </div><div class='widget HTML' data-version='1' id='HTML6'> <div class='widget-content'> <a href="https://googlewebmastercentral.blogspot.com/atom.xml"> <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAihJREFUeNrsWa9Pw0AU7viRMDFRBAkzJDMIBIhJJhCzk7NILIqMv4AEhdz+BCY3OYssAlGBoAJREpZwAlHEBO8lr8nSvNeVbu1dyX3JlzTrXfa+u/e9d7c5joWFhYVO1Fa8PwH2gK6m+BRwAvSlAdsrgr8E1jUuMH73GTAEzrkBWymTewZlihhLmgDXIAFuHgGVQOUF7OSYM1p6PgTuA1vAZlUEvAnPdapcMY0VICECekQ0XRfYrqoHsAGNgXfAoMomRiFDEhOZkkL3S88hMaB2LwXp0bj+ps2edpToZpjfoIDQtBeU+xjoDzP2G/gCPKZ5f8WsCAFJoJgOCcFdWSTeL9YQMSvTA1h9BkI5jaiXhLpSCL/8mVZY0UpyJ9ZdOkniu1dmJ96BpzQu9w6s28gcOq9j6pwLdR8/36NK5CQKwJSMrb2MhhSglBpt4UjsrdsnNu0B3J0HCozbCc4TjyY2srEgos/4RQljCzNxl4ireQD8FOq+T+W0mTB2g7njhlR+Sy2jsXFvU658U8YTbeaGpdIu7mWkEAq5ZtIjIhFZdtfX7QHckSvB2B6zC3VdAkZk0kAQwaXTk/CzTXK3wjIExCs6ZJpTnE4uY1KV+KzFzA3KTiFPENHJkOPcsfpLhwe4btoSuvUqAR+6TOxlCE6ZfKUsJLgsqGW8OpqAGx2X+sLxrwUog+JUeQRMDBIwyXOcnlPtPnL0/UsT/8LnOxYWFhZG4leAAQAAQHEaYuzHbAAAAABJRU5ErkJggg==" class="sidebar-icon" /> <h2>Feed</h2> </a> </div> <div class='clear'></div> </div></div> <div class='section' id='sidebar-bottom'><div class='widget HTML' data-version='1' id='HTML5'> <div class='widget-content'> <div class='followgooglewrapper'> <script src="https://apis.google.com/js/plusone.js"></script></div> <div class="g-ytsubscribe class='followgooglewrapper'" data-channel="GoogleWebmasterHelp" data-layout="full"></div> <div class="share followgooglewrapper"> <button data-href="https://twitter.com/intent/follow?original_referer=https://googlewebmastercentral.blogspot.com/&screen_name=googlewmc" onclick='sharingPopup(this);' id='twitter-share'><span class="twitter-follow">Follow @googlewmc</span></button> <script> function sharingPopup (button) { var url = button.getAttribute("data-href"); window.open( url,'popUpWindow','height=500,width=500,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes'); } </script> </div> </div> <div class='clear'></div> </div><div class='widget HTML' data-version='1' id='HTML1'> <div class='widget-content'> Give us feedback in our <a href="https://support.google.com/webmasters/go/community">Product Forums</a>. </div> <div class='clear'></div> </div><div class='widget HTML' data-version='1' id='HTML8'> <h2 class='title'> Subscribe via email </h2> <div class='widget-content'> <form #nsubmit="window.open('https://www.feedburner.com/fb/a/emailverifySubmit?feedId=1092589', 'popupwindow', 'scrollbars=yes,width=550,height=520');return true" action="https://www.feedburner.com/fb/a/emailverify" style="border:1px solid #ccc;padding:3px;text-align:center;" target="popupwindow" method="post"><p>Enter your email address:</p><p><input style="width:140px" name="email" type="text"/></p><input value="https://feeds.feedburner.com/~e?ffid=1092589" name="url" type="hidden"/><input value="Official Google Webmaster Central Blog" name="title" type="hidden"/><input value="en_US" name="loc" type="hidden"/><input value="Subscribe" type="submit"/><p>Delivered by <a href="https://www.feedburner.com" target="_blank">FeedBurner</a></p></form> </div> <div class='clear'></div> </div></div> </div> </div> <div style='clear:both;'></div> </div> <!-- Footer --> <div class='google-footer-outer loading'> <div id='google-footer'> <a href='//www.google.com/'> <img class='google-logo-dark' height='36' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALgAAABICAYAAABFoT/eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAACLVJREFUeNrsXd+L20YQ3vOprdLqiMXFXE2qB7dcwEcTSB7ykIc+9A/PQx/yEMq1TWhNuYIpJriNr7XpmZ5IxFEvmW2EKs3Ornb1w50PxIFP0kiz387OzM6uhGAwGAxGP3Ho+f7x7ri1O7LdccPqZjSNA4dEHsLfaHcEFedJom93x9Xu2OyOFTcBo6sED3fHZHeMEELrkAHJF0B8Rr+gDFsZ5n0luLTQ95AXs4W06D/tjpR50xtM4CjD0y48YGB4rnyZxNOzyA7zBHr+nLnDaJLg0mo/ALekCasg3Z4XbM0ZdTEgnDPeHY8bIne+Qz2GvwyGNwsuyT218KWvIIBMcwGpLiipcolecjMxfBDchNyS1EvxLiOSIecp31q6IJ/C3yrIrMqMm4jhg+AxkdwbIO3aUO4KjqqMjCT3uaazMBhWBJfuxH3CtRfiXf66DhSRZWbmlMnNaILgZxrXJQO/eO3wORZwvwm4JUxuhheCjzVBYAbW1ces45YDSoZrFNOEE835M8FT6oyeEnws8Fz3QnBxFKPHBMem4GU+m6fPGb0leCTwWcM5B36MPgeZI01gudyDdw3hPeXfo8L/rmCUWnuMMdqUL2WqWeRbhf+twfVsO7YagZGNC79fw7OthEVtkiJ4jJzTd3KPwf3CRqhhiTu23AP5sl0/0xiwISQXpNwLIJK87mHF+U8ddzzdmgKlGzlPYjyxGJQouIhNT4k9AqWEFkqfguIvagTWbcq3KW1WE3xS3m8NtA9WS451xofwjKT5kkDoK/b6mDk5FfXr1lWDL4BofZEv2/SRsK/EHGlGdBdu8QNRb8HMCFwt7Yy3DDI/QP7fx5z3VLhdlJEIs4rKNuXXJXdxZPdB7kfCzWqwCO4V1LHgLjInX3tQ1KzCR52Cz+vDj1dydeRuS74rcvs2Pi6fT5H8OaaUQPQPYcWwRSGXyhhscn5dpAnEFMkuEZetbfkTAnlSuH4DxisE+aMGeJAQ3lFl7C4LJE6QWCaCd583ORQ1jYAwjFctal7nOs2ZZvicwvlZx+RHGrcoAwKUVX8uwcc/9TT65INeDOr5shL9LDRB6QTeIy3zwfdh3WOi6axLCEhSjXU7F3h6LqggUtvyJxpynwu8tDkD98fXApOxRj8zoZ9MnGveYVIVZKaGrkBXCY65BCYNN9NkjpKOyQ81Q79JgdxS+Jn3SDTEXRI7SWzaiSTB32oI3nU3BvMfM0urhOVYgwKhuiAfc4tM07wXwm1ZRoQYSl2NUwiu01fEAHVcpixd745FvVz4dzUUc0o8rwoLy8ZSwU6CyFx1RP5II9+1bFPEFs9HWbNLiimDXE+vCm7u1CS47cofzD3aEhVY57mxRo5zlqdt+RFC1JUH2S7bcVXg4liTMakaBZZVxiTICRoivcn1sEUBlk24JmaC6kxUbYmWoqvyfck2xZGGnDFYa9MMzkYQ1ijkCX6qidybrgePiQ0QIQqoi6qRLeqQfIoRsEHaQJLBdHOnLGetSdm/IPcymJuS1PAnbQPH0MOw/39C1vL11DiLOqIsbDI8QcHvGiLnySi2qUXBicaqUSxN5LEB0g7Jt3ENXJLPJ5S1tnaZBoWbpRqrmjRE7qHmpSmNHdQcYrEUadoh+TbBnc9ri7iycI1kzPeNcLDIvbiqXpez9Tmdq6zGREPuzECBoxrPMiI2WtvyNwhJba2wy3JZ6ky5dD1lSvmZS3e4SPA1wcf1VTFHKX+cGwZzdUYcqpvUtvwrD/InDttVlyZeAKlNN5MKbAiurHhKIPlUuJvlTCCiDjSKSCsUmCFWbGLZwCESfK07JB8LvMYWVtw0D00JEHV8Mq2HkqPbE0oHLvvK2g0o8ETg+4cfwTlZDT9JDoWygu4uQQE/ivIvtcnfPkaCqhiupz7jWOAzqL/vjtcdkv9G4MVMt+EaylfuImiPAXEUjRF3pjjaHiPPZ6If9TGGAO4ZY0am6jOCb+DQ+ZCqLkIpOIPrdNfIjnFPY6nyFut7TS/fanrziOBOKMupKw94WaLMtuVnSFt9CPrWWdJE6PeltCX432DEBoh+5Dv8RRhdis8YAv9uyq4/JAwtlEApgBe9Cw9xDD3tdk4Jn0MDfiHwPHcRPxBePCMER3GuIx7kGlv9fkZ4V9lolx2Uv4X7hEj7qJ3LDoAMGbTRMRibu4L2xQ8bgt8AyU+Q+x7nYrvDnH4iuO5LxKsYwPVbkPMvKF9Zky9wXzRfVWizi62r9X5VHf55h+WHhDjGBZ4WRhyTr6z5SlCoLMxLSpBZFsQ9F80uQFbF/6aFWi+Ev51vzzsuX+msyzuQXXjUz8zEBy+zpq9yweXAoxJW4JbYrDS6gYDqGHxPl+TKeiBfxj9/EBIElPYeOA4y8/qRQfknjvSzgRgtq0Pw/M1eQeMdOSb2Bnrhr6Led+1vcp2x7oTFHMnedFW+Ivlty062BUt74oHgSj+vHepnhunn0JJAMtBZgDI/qmGtMujRv8DDpo47zBJ8UtPOuAR/7rKn8t9AJ0tBdmBAmJ/Fu71yxp4I3qh+DhyRqbi5Y1ShVPlSb8X7bRNcfgZFl+WRGYo7uecrWq1r8X5bhmzP5OdlDwsGRm1suSxkg5rYm7ConyGQ3Zl+DgSD8V/kPwrWBMG9YcBtyShBnTLdTiHgttw7qAW7cqh/ZnmPKr/6ignOaKsdyxbsToT5UkPsW00bJjijDXficcX/JsLs6w2BwGtherdckH3w/kNXRPVI0OqJQoHX42/66IMfMj/2huRjxIidgKV/W0JS+bsstDoTeAHcrI8E5zTh/sDkqxL5rZup55/3USlswfcHf4IrQplVDgW9XFlOqnwr6pVPMMEZTuC60EttvdzbLbaZ4PsFVa3nohhO+vW+yn/ZB2fUhpysmQrzBcTSai9EszuZMcEZ1lCFVrp9zGXhm69iLyY4oxFIa178lPe12I/P2DAYDAaDwWAwGAwGg8FgMBgMBoPBYDD2Cf8IMADDRGoQTe+E9AAAAABJRU5ErkJggg==' style='margin-top: -16px;' width='92'/> </a> <ul> <li> <a href='//www.google.com/'> Google </a> </li> <li> <a href='//www.google.com/policies/privacy/'> Privacy </a> </li> <li> <a href='//www.google.com/policies/terms/'> Terms </a> </li> </ul> </div> </div> <script type='text/javascript'> //<![CDATA[ // Social sharing popups. var postEl = document.getElementsByClassName('social-wrapper'); var postCount = postEl.length; for(i=0; i<postCount;i++){ postEl[i].addEventListener("click", function(event){ var postUrl = this.getAttribute("data-href"); window.open( postUrl,'popUpWindow','height=500,width=500,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes'); });} //]]> </script> <script type='text/javascript'> //<![CDATA[ var BreakpointHandler = function() { this.initted = false; this.isHomePage = false; this.isMobile = false; }; BreakpointHandler.prototype.finalizeSummary = function(summaryHtml, lastNode) { // Use $.trim for IE8 compatibility summaryHtml = $.trim(summaryHtml).replace(/(<br>|\s)+$/,''); if (lastNode.nodeType == 3) { var lastChar = summaryHtml.slice(-1); if (!lastChar.match(/[.”"?]/)) { if (!lastChar.match(/[A-Za-z]/)) { summaryHtml = summaryHtml.slice(0, -1); } summaryHtml += ' ...'; } } else if (lastNode.nodeType == 1 && (lastNode.nodeName == 'I' || lastNode.nodeName == 'A')) { summaryHtml += ' ...'; } return summaryHtml; }; BreakpointHandler.prototype.generateSummaryFromContent = function(content, numWords) { var seenWords = 0; var summaryHtml = ''; for (var i=0; i < content.childNodes.length; i++) { var node = content.childNodes[i]; var nodeText; if (node.nodeType == 1) { if (node.hasAttribute('data-about-pullquote')) { continue; } nodeText = node.textContent; if (nodeText === undefined) { // innerText for IE8 nodeText = node.innerText; } if (node.nodeName == 'DIV' || node.nodeName == 'B') { // Don't end early if we haven't seen enough words. if (seenWords < 10) { continue; } if (i > 0) { summaryHtml = this.finalizeSummary(summaryHtml, content.childNodes[i-1]); } break; } summaryHtml += node.outerHTML; } else if (node.nodeType == 3) { nodeText = node.nodeValue; summaryHtml += nodeText + ' '; } var words = nodeText.match(/\S+\s*/g); if (!words) { continue; } var remain = numWords - seenWords; if (words.length >= remain) { summaryHtml = this.finalizeSummary(summaryHtml, node); break; } seenWords += words.length; } return summaryHtml; }; BreakpointHandler.prototype.detect = function() { var match, pl = /\+/g, search = /([^&=]+)=?([^&]*)/g, decode = function (s) { return decodeURIComponent(s.replace(pl, " ")); }, query = window.location.search.substring(1); var urlParams = {}; while (match = search.exec(query)) urlParams[decode(match[1])] = decode(match[2]); this.isListPage = $('html').hasClass('list-page'); this.isMobile = urlParams['m'] === '1'; this.isHomePage = window.location.pathname == '/'; }; BreakpointHandler.prototype.initContent = function() { var self = this; $('.post').each(function(index) { var body = $(this).children('.post-body')[0]; var content = $(body).children('.post-content')[0]; $(content).addClass('post-original'); var data = $(content).children('script').html(); data = self.rewriteForSSL(data); // If exists, extract specified editor's preview. var match = data.match(/([\s\S]+?)<div data-is-preview.+?>([\s\S]+)<\/div>/m); if (match) { data = match[1]; } // Prevent big images from loading when they aren't needed. // This must be done as a pre-injection step, since image loading can't be // canceled once embedded into the DOM. if (self.isListPage && self.isMobile) { data = data.replace(/<(img|iframe) .+?>/g, ''); } // Insert template to be rendered as nodes. content.innerHTML = data; if (self.isListPage) { var summary = document.createElement('div'); $(summary).addClass('post-content'); $(summary).addClass('post-summary'); body.insertBefore(summary, content); if (match) { // Use provided summary. summary.innerHTML = match[2]; } else { // Generate a summary. // Summary generation relies on DOM, so it must occur after content is // inserted into the page. summary.innerHTML = self.generateSummaryFromContent(content, 30); } // Add read more link to summary. var titleAnchor = $(this).find('.title a')[0]; var link = titleAnchor.cloneNode(true); link.innerHTML = 'Read More'; $(link).addClass('read-more'); summary.appendChild(link); } }); // Firefox does not allow for proper styling of BR. if (navigator.userAgent.indexOf('Firefox') > -1) { $('.post-content br').replaceWith('<span class="space"></span>'); } $('.loading').removeClass('loading'); }; BreakpointHandler.prototype.process = function() { if (!this.initted) { var makeInsecureImageRegex = function(hosts) { var whitelist = hosts.join('|').replace(/\./g,'\\.'); // Normal image tags, plus input images (yes, this is possible!) return new RegExp('(<(img|input)[^>]+?src=("|\'))http:\/\/(' + whitelist +')', 'g'); }; this.sslImageRegex = makeInsecureImageRegex(BreakpointHandler.KNOWN_HTTPS_HOSTS); this.sslImageCurrentDomainRegex = makeInsecureImageRegex([window.location.hostname]); this.detect(); this.initContent(); this.initted = true; } }; BreakpointHandler.KNOWN_HTTPS_HOSTS = [ "www.google.org", "www.google.com", "services.google.com", "blogger.com", "draft.blogger.com", "www.blogger.com", "photos1.blogger.com", "photos2.blogger.com", "photos3.blogger.com", "blogblog.com", "img1.blogblog.com", "img2.blogblog.com", "www.blogblog.com", "www1.blogblog.com", "www2.blogblog.com", "0.bp.blogspot.com", "1.bp.blogspot.com", "2.bp.blogspot.com", "3.bp.blogspot.com", "4.bp.blogspot.com", "lh3.googleusercontent.com", "lh4.googleusercontent.com", "lh5.googleusercontent.com", "lh6.googleusercontent.com", "themes.googleusercontent.com", ]; BreakpointHandler.prototype.rewriteForSSL = function(html) { // Handle HTTP -> HTTPS source replacement of images, movies, and other embedded content. return html.replace(this.sslImageRegex, '$1https://$4') .replace(this.sslImageCurrentDomainRegex, '$1//$4') .replace(/(<(embed|iframe)[^>]+?src=("|'))http:\/\/([^"']*?(youtube|picasaweb\.google)\.com)/g, '$1https://$4') // Slideshow SWF takes a image host, so we need to rewrite that parameter. .replace(/(<embed[^>]+?feed=http(?=[^s]))/g, '$1s'); }; $(document).ready(function() { var handler = new BreakpointHandler(); handler.process(); // Top-level navigation. $(".BlogArchive .tab").click(function(ev) { ev.preventDefault(); $(this).parent().toggleClass('active'); $(this).siblings().slideToggle(300); }); $(".Label .tab").click(function(ev) { ev.preventDefault(); $(this).parent().toggleClass('active'); $(this).siblings().slideToggle(300); }); // Blog archive year expansion. $('.BlogArchive .intervalToggle').click(function(ev) { ev.preventDefault(); if ($(this).parent().hasClass('collapsed')) { $(this).parent().removeClass('collapsed'); $(this).parent().addClass('expanded'); } else { $(this).parent().removeClass('expanded'); $(this).parent().addClass('collapsed'); } }); // Reverse order of months. $('.BlogArchive .intervalToggle + div').each(function(_, items) { var year = $(this); year.children().each(function(_, month) { year.prepend(month); }); }); // Set anchors to open in new tab. $('.post-content img').parent().each(function(_, node) { if (node.nodeName == 'A') { $(this).attr('target', '_blank'); } }); // Process search requests. $('.searchBox input').on("keypress", function(ev) { if (ev.which == 13) { window.location.href = 'https://www.google.com/search?q=site%3A' + window.location.hostname + '%20' + encodeURIComponent ($(this).val()); } }); }); //]]> </script> <script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/984859869-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY4qZ7ceW7IyrIUt25nbNorFCRC3hg:1732420760724';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d32069983','//webmasters.googleblog.com/search/label/performance?hl\x3den_US','32069983'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '32069983', 'title': 'Official Google Webmaster Central Blog', 'url': 'https://webmasters.googleblog.com/search/label/performance?hl\x3den_US', 'canonicalUrl': 'https://webmasters.googleblog.com/search/label/performance', 'homepageUrl': 'https://webmasters.googleblog.com/?hl\x3den_US', 'searchUrl': 'https://webmasters.googleblog.com/search', 'canonicalHomepageUrl': 'https://webmasters.googleblog.com/', 'blogspotFaviconUrl': 'https://webmasters.googleblog.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': true, 'enabledCommentProfileImages': false, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-18009-4', 'encoding': 'UTF-8', 'locale': 'en-US', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Official Google Webmaster Central Blog - Atom\x22 href\x3d\x22https://webmasters.googleblog.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22Official Google Webmaster Central Blog - RSS\x22 href\x3d\x22https://webmasters.googleblog.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22Official Google Webmaster Central Blog - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/32069983/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': false, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/d78375fb222d99b3', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'index', 'searchLabel': 'performance', 'pageName': 'performance', 'pageTitle': 'Official Google Webmaster Central Blog: performance', 'metaDescription': 'Official news on crawling and indexing sites for the Google index'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': false, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'Official Google Webmaster Central Blog', 'description': 'Official news on crawling and indexing sites for the Google index', 'url': 'https://webmasters.googleblog.com/search/label/performance?hl\x3den_US', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': false, 'isSearch': true, 'isLabelSearch': true, 'search': {'label': 'performance', 'resultsMessage': 'Showing posts with the label performance', 'resultsMessageHtml': 'Showing posts with the label \x3cspan class\x3d\x27search-label\x27\x3eperformance\x3c/span\x3e'}}}]); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'navMessage': 'Showing posts with label \x3cb\x3eperformance\x3c/b\x3e. \x3ca href\x3d\x22https://webmasters.googleblog.com/\x22\x3eShow all posts\x3c/a\x3e'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML9', 'sidebar-top', document.getElementById('HTML9'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML10', 'sidebar-top', document.getElementById('HTML10'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar', document.getElementById('Label1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML6', 'sidebar', document.getElementById('HTML6'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML5', 'sidebar-bottom', document.getElementById('HTML5'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'sidebar-bottom', document.getElementById('HTML1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML8', 'sidebar-bottom', document.getElementById('HTML8'), {}, 'displayModeFull')); </script> </body> </html>