CINXE.COM

Official Google Webmaster Central Blog: 五月 2011

<!DOCTYPE html> <html class='v2 list-page' dir='ltr' itemscope='' itemtype='http://schema.org/Blog' lang='zh-CN' 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: 五月 2011 </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/2011/05/' 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/2011/05/' 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/2011/05/' 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&amp;zx=49591bc5-4003-4ad6-90fb-7bd31a76959a' media='none' onload='if(media!=&#39;all&#39;)media=&#39;all&#39;' rel='stylesheet'/><noscript><link href='https://www.blogger.com/dyn-css/authorization.css?targetBlogID=32069983&amp;zx=49591bc5-4003-4ad6-90fb-7bd31a76959a' 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=zh_CN'> <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='5681855565894288276' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2011/05/troubleshooting-instant-previews-in.html?hl=zh_CN' itemprop='url' title='Troubleshooting Instant Previews in Webmaster Tools'> Troubleshooting Instant Previews in Webmaster Tools </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> 星期三, 五月 18, 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: All<br /> <br /> In November, we <a href="http://googlewebmastercentral.blogspot.com/2010/11/instant-previews.html">launched Instant Previews</a> to help users better understand if a particular result was relevant for a their search query. Since launch, our Instant Previews team has been keeping an eye on common complaints and problems related to how pages are rendered for Instant Previews.<br /> <br /> When we see issues with preview images, they are frequently due to:<br /> <ul> <li>Blocked resources due to a robots.txt entry</li> <li><a href="//www.google.com/support/webmasters/bin/answer.py?answer=66355">Cloaking</a>: Erroneous content being served to the Googlebot user-agent</li> <li>Poor alternative content when Flash is unavailable</li> </ul> To help webmasters diagnose these problems, we have a new Instant Preview tool in the Labs section of <a href="//www.google.com/webmasters/tools/">Webmaster Tools</a> (in English only for now).<br /> <br /> <div style="text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWbw14ILNd-KFhAVlxn4-PWQbKKXy7aQfdWxbDezhzAny0rkMdKp7KbhIyzATAdKsJKBVzkKu0VR1Filz4-LQDW6FURViI_Wbyl669cYgMtsJp0To9C_PBbMHZUtoGdllTnGyh/s1600/webmaster-tools-screenshot.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5608160778856123234" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWbw14ILNd-KFhAVlxn4-PWQbKKXy7aQfdWxbDezhzAny0rkMdKp7KbhIyzATAdKsJKBVzkKu0VR1Filz4-LQDW6FURViI_Wbyl669cYgMtsJp0To9C_PBbMHZUtoGdllTnGyh/s400/webmaster-tools-screenshot.png" style="cursor: hand; cursor: pointer; height: 307px; width: 400px;" /></a></div> <br /> <br /> Here, you can input the URL of any page on your site. We will then fetch the page from your site and try to render it both as it would display in Chrome and through our Instant Preview renderer. Please keep in mind that both of these renders are done using a recent build of Webkit which does not include plugins such as Flash or Silverlight, so it's important to consider the value of providing alternative content for these situations. Alternative content can be helpful to search engines, and visitors to your site without the plugin would benefit as well.<br /> <br /> Below the renders, you&#8217;ll also see automated feedback on problems our system can detect such as missing or roboted resources. And, in the future, we plan to add more informative and timely feedback to help improve your Instant Previews!<br /> <br /> Please direct your questions and feedback to the <a href="//www.google.com/support/forum/p/Webmasters?hl=en">Webmaster Forum</a>.<br /> <br /> <span class="byline-author">Posted by <a href="https://plus.google.com/107559259846815612323/about" rel="author">Michael Darweesh</a>, Software Engineer</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 /> In November, we <a href="http://googlewebmastercentral.blogspot.com/2010/11/instant-previews.html">launched Instant Previews</a> to help users better understand if a particular result was relevant for a their search query. Since launch, our Instant Previews team has been keeping an eye on common complaints and problems related to how pages are rendered for Instant Previews.<br /> <br /> When we see issues with preview images, they are frequently due to:<br /> <ul> <li>Blocked resources due to a robots.txt entry</li> <li><a href="//www.google.com/support/webmasters/bin/answer.py?answer=66355">Cloaking</a>: Erroneous content being served to the Googlebot user-agent</li> <li>Poor alternative content when Flash is unavailable</li> </ul> To help webmasters diagnose these problems, we have a new Instant Preview tool in the Labs section of <a href="//www.google.com/webmasters/tools/">Webmaster Tools</a> (in English only for now).<br /> <br /> <div style="text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWbw14ILNd-KFhAVlxn4-PWQbKKXy7aQfdWxbDezhzAny0rkMdKp7KbhIyzATAdKsJKBVzkKu0VR1Filz4-LQDW6FURViI_Wbyl669cYgMtsJp0To9C_PBbMHZUtoGdllTnGyh/s1600/webmaster-tools-screenshot.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5608160778856123234" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWbw14ILNd-KFhAVlxn4-PWQbKKXy7aQfdWxbDezhzAny0rkMdKp7KbhIyzATAdKsJKBVzkKu0VR1Filz4-LQDW6FURViI_Wbyl669cYgMtsJp0To9C_PBbMHZUtoGdllTnGyh/s400/webmaster-tools-screenshot.png" style="cursor: hand; cursor: pointer; height: 307px; width: 400px;" /></a></div> <br /> <br /> Here, you can input the URL of any page on your site. We will then fetch the page from your site and try to render it both as it would display in Chrome and through our Instant Preview renderer. Please keep in mind that both of these renders are done using a recent build of Webkit which does not include plugins such as Flash or Silverlight, so it's important to consider the value of providing alternative content for these situations. Alternative content can be helpful to search engines, and visitors to your site without the plugin would benefit as well.<br /> <br /> Below the renders, you&#8217;ll also see automated feedback on problems our system can detect such as missing or roboted resources. And, in the future, we plan to add more informative and timely feedback to help improve your Instant Previews!<br /> <br /> Please direct your questions and feedback to the <a href="//www.google.com/support/forum/p/Webmasters?hl=en">Webmaster Forum</a>.<br /> <br /> <span class="byline-author">Posted by <a href="https://plus.google.com/107559259846815612323/about" rel="author">Michael Darweesh</a>, Software Engineer</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:Troubleshooting Instant Previews in Webmaster Tools&url=https://webmasters.googleblog.com/2011/05/troubleshooting-instant-previews-in.html?hl=zh_CN&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/troubleshooting-instant-previews-in.html?hl=zh_CN'> <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/troubleshooting-instant-previews-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'> 标签&#65306; </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=zh_CN' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/beginner?hl=zh_CN' rel='tag'> beginner </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=zh_CN' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/search%20results?hl=zh_CN' rel='tag'> search results </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/webmaster%20tools?hl=zh_CN' rel='tag'> webmaster tools </a> </span> </div> </div> </div> <div class='post' data-id='9149163172797713345' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2011/05/easier-url-removals-for-site-owners.html?hl=zh_CN' itemprop='url' title='Easier URL removals for site owners'> Easier URL removals for site owners </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> 星期二, 五月 17, 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: All<br /> <br /> We recently made a change to the <a href="//www.google.com/support/webmasters/bin/answer.py?answer=164734">Remove URL</a> tool in <a href="https://www.google.com/webmasters/tools/">Webmaster Tools</a> to eliminate the requirement that the webpage's URL must first be blocked by a site owner before the page can be removed from Google's search results. Because you've already verified ownership of the site, we can eliminate this requirement to make it easier for you, as the site owner, to remove unwanted pages (e.g. pages accidentally made public) from Google's search results.<br /> <br /> <span style="font-weight: bold;">Removals persist for at least 90 days</span><br /> When a page&#8217;s URL is requested for removal, the request is temporary and persists for at least 90 days. We may continue to crawl the page during the 90-day period but we will not display it in the search results. You can still revoke the removal request at any time during those 90 days. After the 90-day period, the page can reappear in our search results, assuming you haven&#8217;t made any other changes that could impact the page&#8217;s availability.<br /> <br /> <span style="font-weight: bold;">Permanent removal</span><br /> In order to permanently remove a URL, you must ensure that one of the following page blocking methods is implemented for the URL of the page that you want removed:<br /> <ul> <li>indicate that the page no longer exists by returning a <a href="//www.google.com/support/webmasters/bin/answer.py?answer=40132">404 or 410 HTTP status code</a></li> <li>block the page from crawling via a <a href="//www.google.com/support/webmasters/bin/answer.py?answer=156449">robots.txt file</a></li> <li>block the page from indexing via a <a href="//www.google.com/support/webmasters/bin/answer.py?answer=93710">noindex meta tag</a></li> </ul> This will ensure that the page is permanently removed from Google's search results for as long as the page is blocked. If at any time in the future you remove the previously implemented page blocking method, we may potentially re-crawl and index the page. For immediate and permanent removal, you can request that a page be removed using the Remove URL tool and then permanently block the page&#8217;s URL before the 90-day expiration of the removal request.<br /> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNMyfKOv2Q2t9JjmgluaIIh4QcI0aW_MnCv4n3LBfYbd6N_oKx66G-m6rDemLO6x6ZWrcGfNw7cx4ki9_HL2A99LYeex4VxTOnAKGgFX20VLY6W9abWRfmwav3QzPzkyN-Z1Ok/s1600/url-removal-step-1.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5607478165257165938" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNMyfKOv2Q2t9JjmgluaIIh4QcI0aW_MnCv4n3LBfYbd6N_oKx66G-m6rDemLO6x6ZWrcGfNw7cx4ki9_HL2A99LYeex4VxTOnAKGgFX20VLY6W9abWRfmwav3QzPzkyN-Z1Ok/s400/url-removal-step-1.png" style="cursor: hand; cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br /> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuLr6M0HCh8aL2ldbNP-vhyphenhyphenxMM6CYf25XacW1ytD0ZW0YWALIyvy_O6AKIdGE-qz3lxz6um653PtiqP7ee9Vn6OzU0Sikx_kqP-7Vx9Q_92XUDEWfsEDEBZ05YPjhPfmPHDdER/s1600/url-removal-step-2.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5607478291460811666" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuLr6M0HCh8aL2ldbNP-vhyphenhyphenxMM6CYf25XacW1ytD0ZW0YWALIyvy_O6AKIdGE-qz3lxz6um653PtiqP7ee9Vn6OzU0Sikx_kqP-7Vx9Q_92XUDEWfsEDEBZ05YPjhPfmPHDdER/s400/url-removal-step-2.png" style="cursor: hand; cursor: pointer; display: block; height: 237px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br /> <br /> For more information about URL removals, see our &#8220;<a href="http://googlewebmastercentral.blogspot.com/2010/03/url-removal-explained-part-i-urls.html">URL removal explained</a>&#8221; blog series covering this topic. If you still have questions about this change or about URL removal requests in general, please post in our <a href="//www.google.com/support/forum/p/Webmasters/label?lid=5489e59697a233d7">Webmaster Help Forum</a>.<br /> <br /> <span class="byline-author">Written by <a href="https://plus.google.com/100827970491354551456/about" rel="author">Jonathan Simon</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: All<br /> <br /> We recently made a change to the <a href="//www.google.com/support/webmasters/bin/answer.py?answer=164734">Remove URL</a> tool in <a href="https://www.google.com/webmasters/tools/">Webmaster Tools</a> to eliminate the requirement that the webpage's URL must first be blocked by a site owner before the page can be removed from Google's search results. Because you've already verified ownership of the site, we can eliminate this requirement to make it easier for you, as the site owner, to remove unwanted pages (e.g. pages accidentally made public) from Google's search results.<br /> <br /> <span style="font-weight: bold;">Removals persist for at least 90 days</span><br /> When a page&#8217;s URL is requested for removal, the request is temporary and persists for at least 90 days. We may continue to crawl the page during the 90-day period but we will not display it in the search results. You can still revoke the removal request at any time during those 90 days. After the 90-day period, the page can reappear in our search results, assuming you haven&#8217;t made any other changes that could impact the page&#8217;s availability.<br /> <br /> <span style="font-weight: bold;">Permanent removal</span><br /> In order to permanently remove a URL, you must ensure that one of the following page blocking methods is implemented for the URL of the page that you want removed:<br /> <ul> <li>indicate that the page no longer exists by returning a <a href="//www.google.com/support/webmasters/bin/answer.py?answer=40132">404 or 410 HTTP status code</a></li> <li>block the page from crawling via a <a href="//www.google.com/support/webmasters/bin/answer.py?answer=156449">robots.txt file</a></li> <li>block the page from indexing via a <a href="//www.google.com/support/webmasters/bin/answer.py?answer=93710">noindex meta tag</a></li> </ul> This will ensure that the page is permanently removed from Google's search results for as long as the page is blocked. If at any time in the future you remove the previously implemented page blocking method, we may potentially re-crawl and index the page. For immediate and permanent removal, you can request that a page be removed using the Remove URL tool and then permanently block the page&#8217;s URL before the 90-day expiration of the removal request.<br /> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNMyfKOv2Q2t9JjmgluaIIh4QcI0aW_MnCv4n3LBfYbd6N_oKx66G-m6rDemLO6x6ZWrcGfNw7cx4ki9_HL2A99LYeex4VxTOnAKGgFX20VLY6W9abWRfmwav3QzPzkyN-Z1Ok/s1600/url-removal-step-1.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5607478165257165938" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNMyfKOv2Q2t9JjmgluaIIh4QcI0aW_MnCv4n3LBfYbd6N_oKx66G-m6rDemLO6x6ZWrcGfNw7cx4ki9_HL2A99LYeex4VxTOnAKGgFX20VLY6W9abWRfmwav3QzPzkyN-Z1Ok/s400/url-removal-step-1.png" style="cursor: hand; cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br /> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuLr6M0HCh8aL2ldbNP-vhyphenhyphenxMM6CYf25XacW1ytD0ZW0YWALIyvy_O6AKIdGE-qz3lxz6um653PtiqP7ee9Vn6OzU0Sikx_kqP-7Vx9Q_92XUDEWfsEDEBZ05YPjhPfmPHDdER/s1600/url-removal-step-2.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5607478291460811666" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuLr6M0HCh8aL2ldbNP-vhyphenhyphenxMM6CYf25XacW1ytD0ZW0YWALIyvy_O6AKIdGE-qz3lxz6um653PtiqP7ee9Vn6OzU0Sikx_kqP-7Vx9Q_92XUDEWfsEDEBZ05YPjhPfmPHDdER/s400/url-removal-step-2.png" style="cursor: hand; cursor: pointer; display: block; height: 237px; margin: 0px auto 10px; text-align: center; width: 400px;" /></a><br /> <br /> For more information about URL removals, see our &#8220;<a href="http://googlewebmastercentral.blogspot.com/2010/03/url-removal-explained-part-i-urls.html">URL removal explained</a>&#8221; blog series covering this topic. If you still have questions about this change or about URL removal requests in general, please post in our <a href="//www.google.com/support/forum/p/Webmasters/label?lid=5489e59697a233d7">Webmaster Help Forum</a>.<br /> <br /> <span class="byline-author">Written by <a href="https://plus.google.com/100827970491354551456/about" rel="author">Jonathan Simon</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:Easier URL removals for site owners&url=https://webmasters.googleblog.com/2011/05/easier-url-removals-for-site-owners.html?hl=zh_CN&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/easier-url-removals-for-site-owners.html?hl=zh_CN'> <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/easier-url-removals-for-site-owners.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'> 标签&#65306; </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/crawling%20and%20indexing?hl=zh_CN' rel='tag'> crawling and indexing </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/search%20results?hl=zh_CN' rel='tag'> search results </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/webmaster%20tools?hl=zh_CN' rel='tag'> webmaster tools </a> </span> </div> </div> </div> <div class='post' data-id='1301909737296394456' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2011/05/website-security-for-webmasters.html?hl=zh_CN' itemprop='url' title='Website Security for Webmasters'> Website Security for Webmasters </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> 星期四, 五月 12, 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 to Advanced<br /> <br /> Users are taught to protect themselves from malicious programs by installing sophisticated antivirus software, but often they may also entrust their private information to websites like yours, in which case it&#8217;s important to protect their data. It&#8217;s also very important to protect your own data; if you have an online store, you don&#8217;t want to be robbed.<br /> <br /> Over the years companies and webmasters have learned&#8212;often the hard way&#8212;that web application security is not a joke; we&#8217;ve seen user passwords leaked due to <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL injection</a> attacks, cookies stolen with <a href="http://en.wikipedia.org/wiki/Cross-site_scripting">XSS</a>, and websites taken over by hackers due to negligent input validation.<br /> <br /> <img alt="" border="0" id="BLOGGER_PHOTO_ID_5603170363751903522" src="//4.bp.blogspot.com/-edYHtaKmejg/TcJ1wkttsSI/AAAAAAAAABI/pcTuQ092SRU/s320/image05.png" style="cursor: hand; cursor: pointer; float: left; height: 40px; margin: 0 10px 10px 0; width: 40px;">Today we&#8217;ll show you some examples of how a web application can be exploited so you can learn from them; for this we&#8217;ll use <a href="http://google-gruyere.appspot.com/">Gruyere</a>, an intentionally vulnerable application we use for security training internally, too. <span style="font-weight: bold;">Do not probe others&#8217; websites for vulnerabilities without permission</span> as it may be perceived as hacking; but you&#8217;re welcome&#8212;nay, encouraged&#8212;to run tests on Gruyere.<br /> <br /> <br /> <span style="font-weight: bold;">Client state manipulation - What will happen if I alter the URL?</span><br /> <br /> Let&#8217;s say you have an image hosting site and you&#8217;re using a PHP script to display the images users have uploaded:<br /> <br /> <span style="font-style: italic;">http://www.example.com/showimage.php?imgloc=/garyillyes/kitten.jpg</span><br /> <br /> So what will the application do if I alter the URL to something like this and userpasswords.txt is an actual file?<br /> <br /> <span style="font-style: italic;">http://www.example.com/showimage.php?imgloc=/../../userpasswords.txt</span><br /> <br /> Will I get the content of userpasswords.txt?<br /> <br /> Another example of client state manipulation is when form fields are not validated. For instance, let&#8217;s say you have this form:<br /> <br /> <a href="//4.bp.blogspot.com/-CUl2wmaPSfU/TcJ26natwlI/AAAAAAAAABY/FJLhqkOijIE/s1600/image01.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603171635787842130" src="//4.bp.blogspot.com/-CUl2wmaPSfU/TcJ26natwlI/AAAAAAAAABY/FJLhqkOijIE/s400/image01.png" style="cursor: hand; cursor: pointer; display: block; height: 224px; margin: 0px auto 10px; text-align: center; width: 400px;"></a><br /> <br /> It seems that the username of the submitter is stored in a hidden input field. Well, that&#8217;s great! Does that mean that if I change the value of that field to another username, I can submit the form as that user? It may very well happen; the user input is apparently not authenticated with, for example, a token which can be verified on the server.<br /> Imagine the situation if that form were part of your shopping cart and I modified the price of a $1000 item to $1, and then placed the order.<br /> <br /> Protecting your application against this kind of attack is not easy; take a look at the third part of <a href="http://google-gruyere.appspot.com/part3">Gruyere</a> to learn a few tips about how to defend your app.<br /> <br /> <span style="font-weight: bold;">Cross-site scripting (XSS) - User input can&#8217;t be trusted</span><br /> <br /> <a href="//1.bp.blogspot.com/-zl9GLNOZTSU/TcJ3RWU3pHI/AAAAAAAAABg/QWpA-wnwCkE/s1600/image04.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603172026336912498" src="//1.bp.blogspot.com/-zl9GLNOZTSU/TcJ3RWU3pHI/AAAAAAAAABg/QWpA-wnwCkE/s400/image04.png" style="cursor: hand; cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 350px;"></a><br /> <br /> A simple, harmless URL:<br /> <span style="font-style: italic;">http://google-gruyere.appspot.com/611788451095/%3Cscript%3Ealert('0wn3d')%3C/script%3E</span><br /> But is it truly harmless? If I decode the <a href="http://en.wikipedia.org/wiki/Percent_encoding">percent-encoded</a> characters, I get:<br /> <pre style="text-align: center;">&lt;script&gt;alert('0wn3d')&lt;/script&gt;</pre> <br /> Gruyere, just like many sites with <a href="//www.google.com/support/webmasters/bin/answer.py?answer=93641">custom error pages</a>, is designed to include the path component in the HTML page. This can introduce security bugs, like XSS, as it introduces user input directly into the rendered HTML page of the web application. You might say, &#8220;It&#8217;s just an alert box, so what?&#8221; The thing is, if I can inject an alert box, I can most likely inject something else, too, and maybe steal your cookies which I could use to sign in to your site as you.<br /> <br /> Another example is when the stored user input isn&#8217;t sanitized. Let&#8217;s say I write a comment on your blog; the comment is simple:<br /> <pre style="text-align: center;">&lt;a href=&#8221;javascript:alert(&#8216;0wn3d&#8217;)&#8221;&gt;Click here to see a kitten&lt;/a&gt;</pre> <br /> If other users click on my innocent link, I have their cookies:<br /> <br /> <a href="//3.bp.blogspot.com/-G5gvanGzYso/TcJ4Y21jlrI/AAAAAAAAABo/dBxxlOCeNCU/s1600/image00.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603173254834656946" src="//3.bp.blogspot.com/-G5gvanGzYso/TcJ4Y21jlrI/AAAAAAAAABo/dBxxlOCeNCU/s400/image00.png" style="cursor: hand; cursor: pointer; display: block; height: 210px; margin: 0px auto 10px; text-align: center; width: 300px;"></a><br /> <br /> You can learn how to find XSS vulnerabilities in your own web app and how to fix them in the second part of <a href="http://google-gruyere.appspot.com/part2">Gruyere</a>; or, if you&#8217;re an advanced developer, take a look at the automatic escaping features in template systems we blogged about on our <a href="http://googleonlinesecurity.blogspot.com/2009/03/reducing-xss-by-way-of-automatic.html">Online Security blog</a>.<br /> <br /> <span style="font-weight: bold;">Cross-site request forgery (XSRF) - Should I trust requests from evil.com?</span><br /> <br /> <a href="//3.bp.blogspot.com/-oGUWkyOcgVI/TcJ5Jlnc02I/AAAAAAAAAB4/W2LgndPdgLE/s1600/image03.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603174092025680738" src="//3.bp.blogspot.com/-oGUWkyOcgVI/TcJ5Jlnc02I/AAAAAAAAAB4/W2LgndPdgLE/s400/image03.png" style="cursor: hand; cursor: pointer; float: left; height: 80px; margin: 0 10px 10px 0; width: 250px;"></a> Oops, a broken picture. It can&#8217;t be dangerous--it&#8217;s broken, after all--which means that the URL of the image returns a 404 or it&#8217;s just malformed. Is that true in all of the cases?<br /> <br /> No, it&#8217;s not! You can specify any URL as an image source, regardless of its content type. It can be an HTML page, a JavaScript file, or some other potentially malicious resource. In this case the image source was a simple page&#8217;s URL:<br /> <br /> <a href="//4.bp.blogspot.com/-W5Kf2VzGYQ4/TcJ5YqZ5qJI/AAAAAAAAACA/a7ir-pIueG0/s1600/image02.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603174351009065106" src="//4.bp.blogspot.com/-W5Kf2VzGYQ4/TcJ5YqZ5qJI/AAAAAAAAACA/a7ir-pIueG0/s400/image02.png" style="cursor: hand; cursor: pointer; display: block; height: 50px; margin: 0px auto 10px; text-align: center; width: 400px;"></a><br /> <br /> That page will only work if I&#8217;m logged in and I have some cookies set. Since I was actually logged in to the application, when the browser tried to fetch the image by accessing the image source URL, it also deleted my first snippet. This doesn&#8217;t sound particularly dangerous, but if I&#8217;m a bit familiar with the app, I could also invoke a URL which deletes a user&#8217;s profile or lets admins grant permissions for other users.<br /> <br /> To protect your app against XSRF you should not allow state changing actions to be called via GET; the POST method was invented for this kind of state-changing request. This change alone may have mitigated the above attack, but usually it's not enough and you need to include an unpredictable value in all state changing requests to prevent XSRF. Please head to <a href="http://google-gruyere.appspot.com/part3">Gruyere</a> if you want to learn more about XSRF.<br /> <br /> <span style="font-weight: bold;">Cross-site script inclusion (XSSI) - All your script are belong to us</span><br /> <br /> Many sites today can dynamically update a page's content via asynchronous JavaScript requests that return JSON data. Sometimes, JSON can contain sensitive data, and if the correct precautions are not in place, it may be possible for an attacker to steal this sensitive information.<br /> <br /> Let&#8217;s imagine the following scenario: I have created a standard HTML page and send you the link; since you trust me, you visit the link I sent you. The page contains only a few lines:<br /> <pre>&lt;script&gt;function _feed(s) {alert("Your private snippet is: " + s['private_snippet']);}&lt;/script&gt;&lt;script src="http://google-gruyere.appspot.com/611788451095/feed.gtl"&gt;&lt;/script&gt;</pre> <br /> <br /> Since you&#8217;re signed in to Gruyere and you have a private snippet, you&#8217;ll see an alert box on my page informing you about the contents of your snippet. As always, if I managed to fire up an alert box, I can do whatever else I want; in this case it was a simple snippet, but it could have been your biggest secret, too.<br /> <br /> It&#8217;s not too hard to defend your app against XSSI, but it still requires careful thinking. You can use tokens as explained in the XSRF section, set your script to answer only POST requests, or simply start the JSON response with &#8216;\n&#8217; to make sure the script is not executable.<br /> <br /> <span style="font-weight: bold;">SQL Injection - Still think user input is safe?</span><br /> <br /> What will happen if I try to sign in to your app with a username like<br /> <pre style="text-align: center;">JohnDoe&#8217;; DROP TABLE members;--</pre> <br /> While this specific example won&#8217;t expose user data, it can cause great headaches because it has the potential to completely remove the SQL table where your app stores information about members.<br /> <br /> Generally, you can protect your app from SQL injection with proactive thinking and input validation. First, are you sure the SQL user needs to have permission to execute &#8220;DROP TABLE members&#8221;? Wouldn&#8217;t it be enough to grant only SELECT rights? By setting the SQL user&#8217;s permissions carefully, you can avoid painful experiences and lots of troubles. You might also want to configure error reporting in such way that the database and its tables&#8217; names aren&#8217;t exposed in the case of a failed query.<br /> Second, as we learned in the XSS case, never trust user input: what looks like a login form to you, looks like a potential doorway to an attacker. Always sanitize and quotesafe the input that will be stored in a database, and whenever possible make use of statements generally referred to as prepared or parametrized statements available in most database programming interfaces.<br /> <br /> Knowing how web applications can be exploited is the first step in understanding how to defend them. In light of this, we encourage you to take the <a href="http://google-gruyere.appspot.com/">Gruyere course</a>, take other web security courses from the <a href="http://code.google.com/edu/security/index.html">Google Code University</a> and check out <a href="http://code.google.com/p/skipfish/wiki/SkipfishDoc">skipfish</a> if you're looking for an automated web application security testing tool. If you have more questions please post them in our <a href="//www.google.com/support/forum/p/Webmasters/browse?hl=en">Webmaster Help Forum</a>.<br /> <br /> <span class="byline-author">Written by <a href="https://profiles.google.com/113015888318365287230/about" rel="author">Gary Illyes</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 to Advanced<br /> <br /> Users are taught to protect themselves from malicious programs by installing sophisticated antivirus software, but often they may also entrust their private information to websites like yours, in which case it&#8217;s important to protect their data. It&#8217;s also very important to protect your own data; if you have an online store, you don&#8217;t want to be robbed.<br /> <br /> Over the years companies and webmasters have learned&#8212;often the hard way&#8212;that web application security is not a joke; we&#8217;ve seen user passwords leaked due to <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL injection</a> attacks, cookies stolen with <a href="http://en.wikipedia.org/wiki/Cross-site_scripting">XSS</a>, and websites taken over by hackers due to negligent input validation.<br /> <br /> <img alt="" border="0" id="BLOGGER_PHOTO_ID_5603170363751903522" src="//4.bp.blogspot.com/-edYHtaKmejg/TcJ1wkttsSI/AAAAAAAAABI/pcTuQ092SRU/s320/image05.png" style="cursor: hand; cursor: pointer; float: left; height: 40px; margin: 0 10px 10px 0; width: 40px;">Today we&#8217;ll show you some examples of how a web application can be exploited so you can learn from them; for this we&#8217;ll use <a href="http://google-gruyere.appspot.com/">Gruyere</a>, an intentionally vulnerable application we use for security training internally, too. <span style="font-weight: bold;">Do not probe others&#8217; websites for vulnerabilities without permission</span> as it may be perceived as hacking; but you&#8217;re welcome&#8212;nay, encouraged&#8212;to run tests on Gruyere.<br /> <br /> <br /> <span style="font-weight: bold;">Client state manipulation - What will happen if I alter the URL?</span><br /> <br /> Let&#8217;s say you have an image hosting site and you&#8217;re using a PHP script to display the images users have uploaded:<br /> <br /> <span style="font-style: italic;">http://www.example.com/showimage.php?imgloc=/garyillyes/kitten.jpg</span><br /> <br /> So what will the application do if I alter the URL to something like this and userpasswords.txt is an actual file?<br /> <br /> <span style="font-style: italic;">http://www.example.com/showimage.php?imgloc=/../../userpasswords.txt</span><br /> <br /> Will I get the content of userpasswords.txt?<br /> <br /> Another example of client state manipulation is when form fields are not validated. For instance, let&#8217;s say you have this form:<br /> <br /> <a href="//4.bp.blogspot.com/-CUl2wmaPSfU/TcJ26natwlI/AAAAAAAAABY/FJLhqkOijIE/s1600/image01.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603171635787842130" src="//4.bp.blogspot.com/-CUl2wmaPSfU/TcJ26natwlI/AAAAAAAAABY/FJLhqkOijIE/s400/image01.png" style="cursor: hand; cursor: pointer; display: block; height: 224px; margin: 0px auto 10px; text-align: center; width: 400px;"></a><br /> <br /> It seems that the username of the submitter is stored in a hidden input field. Well, that&#8217;s great! Does that mean that if I change the value of that field to another username, I can submit the form as that user? It may very well happen; the user input is apparently not authenticated with, for example, a token which can be verified on the server.<br /> Imagine the situation if that form were part of your shopping cart and I modified the price of a $1000 item to $1, and then placed the order.<br /> <br /> Protecting your application against this kind of attack is not easy; take a look at the third part of <a href="http://google-gruyere.appspot.com/part3">Gruyere</a> to learn a few tips about how to defend your app.<br /> <br /> <span style="font-weight: bold;">Cross-site scripting (XSS) - User input can&#8217;t be trusted</span><br /> <br /> <a href="//1.bp.blogspot.com/-zl9GLNOZTSU/TcJ3RWU3pHI/AAAAAAAAABg/QWpA-wnwCkE/s1600/image04.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603172026336912498" src="//1.bp.blogspot.com/-zl9GLNOZTSU/TcJ3RWU3pHI/AAAAAAAAABg/QWpA-wnwCkE/s400/image04.png" style="cursor: hand; cursor: pointer; display: block; height: 250px; margin: 0px auto 10px; text-align: center; width: 350px;"></a><br /> <br /> A simple, harmless URL:<br /> <span style="font-style: italic;">http://google-gruyere.appspot.com/611788451095/%3Cscript%3Ealert('0wn3d')%3C/script%3E</span><br /> But is it truly harmless? If I decode the <a href="http://en.wikipedia.org/wiki/Percent_encoding">percent-encoded</a> characters, I get:<br /> <pre style="text-align: center;">&lt;script&gt;alert('0wn3d')&lt;/script&gt;</pre> <br /> Gruyere, just like many sites with <a href="//www.google.com/support/webmasters/bin/answer.py?answer=93641">custom error pages</a>, is designed to include the path component in the HTML page. This can introduce security bugs, like XSS, as it introduces user input directly into the rendered HTML page of the web application. You might say, &#8220;It&#8217;s just an alert box, so what?&#8221; The thing is, if I can inject an alert box, I can most likely inject something else, too, and maybe steal your cookies which I could use to sign in to your site as you.<br /> <br /> Another example is when the stored user input isn&#8217;t sanitized. Let&#8217;s say I write a comment on your blog; the comment is simple:<br /> <pre style="text-align: center;">&lt;a href=&#8221;javascript:alert(&#8216;0wn3d&#8217;)&#8221;&gt;Click here to see a kitten&lt;/a&gt;</pre> <br /> If other users click on my innocent link, I have their cookies:<br /> <br /> <a href="//3.bp.blogspot.com/-G5gvanGzYso/TcJ4Y21jlrI/AAAAAAAAABo/dBxxlOCeNCU/s1600/image00.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603173254834656946" src="//3.bp.blogspot.com/-G5gvanGzYso/TcJ4Y21jlrI/AAAAAAAAABo/dBxxlOCeNCU/s400/image00.png" style="cursor: hand; cursor: pointer; display: block; height: 210px; margin: 0px auto 10px; text-align: center; width: 300px;"></a><br /> <br /> You can learn how to find XSS vulnerabilities in your own web app and how to fix them in the second part of <a href="http://google-gruyere.appspot.com/part2">Gruyere</a>; or, if you&#8217;re an advanced developer, take a look at the automatic escaping features in template systems we blogged about on our <a href="http://googleonlinesecurity.blogspot.com/2009/03/reducing-xss-by-way-of-automatic.html">Online Security blog</a>.<br /> <br /> <span style="font-weight: bold;">Cross-site request forgery (XSRF) - Should I trust requests from evil.com?</span><br /> <br /> <a href="//3.bp.blogspot.com/-oGUWkyOcgVI/TcJ5Jlnc02I/AAAAAAAAAB4/W2LgndPdgLE/s1600/image03.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603174092025680738" src="//3.bp.blogspot.com/-oGUWkyOcgVI/TcJ5Jlnc02I/AAAAAAAAAB4/W2LgndPdgLE/s400/image03.png" style="cursor: hand; cursor: pointer; float: left; height: 80px; margin: 0 10px 10px 0; width: 250px;"></a> Oops, a broken picture. It can&#8217;t be dangerous--it&#8217;s broken, after all--which means that the URL of the image returns a 404 or it&#8217;s just malformed. Is that true in all of the cases?<br /> <br /> No, it&#8217;s not! You can specify any URL as an image source, regardless of its content type. It can be an HTML page, a JavaScript file, or some other potentially malicious resource. In this case the image source was a simple page&#8217;s URL:<br /> <br /> <a href="//4.bp.blogspot.com/-W5Kf2VzGYQ4/TcJ5YqZ5qJI/AAAAAAAAACA/a7ir-pIueG0/s1600/image02.png"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603174351009065106" src="//4.bp.blogspot.com/-W5Kf2VzGYQ4/TcJ5YqZ5qJI/AAAAAAAAACA/a7ir-pIueG0/s400/image02.png" style="cursor: hand; cursor: pointer; display: block; height: 50px; margin: 0px auto 10px; text-align: center; width: 400px;"></a><br /> <br /> That page will only work if I&#8217;m logged in and I have some cookies set. Since I was actually logged in to the application, when the browser tried to fetch the image by accessing the image source URL, it also deleted my first snippet. This doesn&#8217;t sound particularly dangerous, but if I&#8217;m a bit familiar with the app, I could also invoke a URL which deletes a user&#8217;s profile or lets admins grant permissions for other users.<br /> <br /> To protect your app against XSRF you should not allow state changing actions to be called via GET; the POST method was invented for this kind of state-changing request. This change alone may have mitigated the above attack, but usually it's not enough and you need to include an unpredictable value in all state changing requests to prevent XSRF. Please head to <a href="http://google-gruyere.appspot.com/part3">Gruyere</a> if you want to learn more about XSRF.<br /> <br /> <span style="font-weight: bold;">Cross-site script inclusion (XSSI) - All your script are belong to us</span><br /> <br /> Many sites today can dynamically update a page's content via asynchronous JavaScript requests that return JSON data. Sometimes, JSON can contain sensitive data, and if the correct precautions are not in place, it may be possible for an attacker to steal this sensitive information.<br /> <br /> Let&#8217;s imagine the following scenario: I have created a standard HTML page and send you the link; since you trust me, you visit the link I sent you. The page contains only a few lines:<br /> <pre>&lt;script&gt;function _feed(s) {alert("Your private snippet is: " + s['private_snippet']);}&lt;/script&gt;&lt;script src="http://google-gruyere.appspot.com/611788451095/feed.gtl"&gt;&lt;/script&gt;</pre> <br /> <br /> Since you&#8217;re signed in to Gruyere and you have a private snippet, you&#8217;ll see an alert box on my page informing you about the contents of your snippet. As always, if I managed to fire up an alert box, I can do whatever else I want; in this case it was a simple snippet, but it could have been your biggest secret, too.<br /> <br /> It&#8217;s not too hard to defend your app against XSSI, but it still requires careful thinking. You can use tokens as explained in the XSRF section, set your script to answer only POST requests, or simply start the JSON response with &#8216;\n&#8217; to make sure the script is not executable.<br /> <br /> <span style="font-weight: bold;">SQL Injection - Still think user input is safe?</span><br /> <br /> What will happen if I try to sign in to your app with a username like<br /> <pre style="text-align: center;">JohnDoe&#8217;; DROP TABLE members;--</pre> <br /> While this specific example won&#8217;t expose user data, it can cause great headaches because it has the potential to completely remove the SQL table where your app stores information about members.<br /> <br /> Generally, you can protect your app from SQL injection with proactive thinking and input validation. First, are you sure the SQL user needs to have permission to execute &#8220;DROP TABLE members&#8221;? Wouldn&#8217;t it be enough to grant only SELECT rights? By setting the SQL user&#8217;s permissions carefully, you can avoid painful experiences and lots of troubles. You might also want to configure error reporting in such way that the database and its tables&#8217; names aren&#8217;t exposed in the case of a failed query.<br /> Second, as we learned in the XSS case, never trust user input: what looks like a login form to you, looks like a potential doorway to an attacker. Always sanitize and quotesafe the input that will be stored in a database, and whenever possible make use of statements generally referred to as prepared or parametrized statements available in most database programming interfaces.<br /> <br /> Knowing how web applications can be exploited is the first step in understanding how to defend them. In light of this, we encourage you to take the <a href="http://google-gruyere.appspot.com/">Gruyere course</a>, take other web security courses from the <a href="http://code.google.com/edu/security/index.html">Google Code University</a> and check out <a href="http://code.google.com/p/skipfish/wiki/SkipfishDoc">skipfish</a> if you're looking for an automated web application security testing tool. If you have more questions please post them in our <a href="//www.google.com/support/forum/p/Webmasters/browse?hl=en">Webmaster Help Forum</a>.<br /> <br /> <span class="byline-author">Written by <a href="https://profiles.google.com/113015888318365287230/about" rel="author">Gary Illyes</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:Website Security for Webmasters&url=https://webmasters.googleblog.com/2011/05/website-security-for-webmasters.html?hl=zh_CN&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/website-security-for-webmasters.html?hl=zh_CN'> <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/website-security-for-webmasters.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'> 标签&#65306; </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=zh_CN' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/general%20tips?hl=zh_CN' rel='tag'> general tips </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=zh_CN' rel='tag'> intermediate </a> </span> </div> </div> </div> <div class='post' data-id='4261802060271627314' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2011/05/introducing-google-webmaster-team.html?hl=zh_CN' itemprop='url' title='Introducing the Google Webmaster Team'> Introducing the Google Webmaster Team </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> 星期三, 五月 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"> <em>We&#8217;re pleased to introduce the Google Webmaster Team as contributors to the Webmaster Central Blog. As the team responsible for tens of thousands of Google&#8217;s informational web pages, they&#8217;re here to offer tips and advice based on their experiences as hands-on webmasters.</em><br /> Back in the 1990s, anyone who maintained a website called themselves a &#8220;webmaster&#8221; regardless of whether they were a designer, developer, author, system administrator, or someone who had just stumbled across <a href="http://www.archive.org/web/geocities.php">GeoCities</a> and created their first web page. As the technologies changed over the years, so did the roles and skills of those managing websites.<br /> Around 20 years after the word was first used, we still refer to ourselves as the Google Webmaster Team because it&#8217;s the only term that really covers the wide variety of roles that we have on our team. Although most of us have solid knowledge of HTML, CSS, JavaScript and other web technologies, we also have specialists in design, development, user experience, information architecture, system administration, and project management.<br /> <div class="separator" style="clear: both; margin-bottom: 1em; margin-top: 1em; text-align: center;"> <a href="//3.bp.blogspot.com/_umsFxtJeCCI/TcvPeISUJRI/AAAAAAAABgM/YKr0RkyZdEI/s1600/mtv-webmasters.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="267" src="//3.bp.blogspot.com/_umsFxtJeCCI/TcvPeISUJRI/AAAAAAAABgM/YKr0RkyZdEI/s400/mtv-webmasters.jpg" width="400"></a></div> <em>Part of the Google Webmaster Team, Mountain View</em><br /> In contrast to the Google Webmaster Central Team&#8212;which mainly focuses on helping webmasters outside of Google understand web search and how things like crawling and indexing affect their sites&#8212;our team is responsible for designing, implementing, optimizing and maintaining Google&#8217;s corporate pages, informational product pages, landing pages for marketing campaigns, and our error page. Our team also develops internal tools to increase our productivity and help to maintain the thousands of HTML pages that we own.<br /> We&#8217;re working hard to follow, challenge and evolve best practices and web standards to ensure that all our new pages are produced to the highest quality and provide the best user experience, and we&#8217;re constantly evaluating and updating our legacy pages to ensure their deprecated HTML isn&#8217;t just left to rot.<br /> We want to share our work and experiences with other webmasters, so we recently launched our <a href="http://twitter.com/GoogleWebTeam">@GoogleWebTeam</a> account on Twitter to keep our followers updated on the latest news about our projects, web standards, and anything else which may be of interest to other webmasters, web designers and web developers. We&#8217;ll be posting here on the Webmaster Central Blog when we want to share anything longer than 140 characters.<br /> Before we share more details about our processes and experiences, please let us know if there&#8217;s anything you&#8217;d like us to specifically cover by leaving a comment here or by tweeting <a href="http://twitter.com/GoogleWebTeam">@GoogleWebTeam</a>.<br /> <span class="byline-author">Posted by <a href="https://plus.google.com/116226932711437764309/about" rel="author">Tony Ruscoe</a>, Google Webmaster 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"> <em>We&#8217;re pleased to introduce the Google Webmaster Team as contributors to the Webmaster Central Blog. As the team responsible for tens of thousands of Google&#8217;s informational web pages, they&#8217;re here to offer tips and advice based on their experiences as hands-on webmasters.</em><br /> Back in the 1990s, anyone who maintained a website called themselves a &#8220;webmaster&#8221; regardless of whether they were a designer, developer, author, system administrator, or someone who had just stumbled across <a href="http://www.archive.org/web/geocities.php">GeoCities</a> and created their first web page. As the technologies changed over the years, so did the roles and skills of those managing websites.<br /> Around 20 years after the word was first used, we still refer to ourselves as the Google Webmaster Team because it&#8217;s the only term that really covers the wide variety of roles that we have on our team. Although most of us have solid knowledge of HTML, CSS, JavaScript and other web technologies, we also have specialists in design, development, user experience, information architecture, system administration, and project management.<br /> <div class="separator" style="clear: both; margin-bottom: 1em; margin-top: 1em; text-align: center;"> <a href="//3.bp.blogspot.com/_umsFxtJeCCI/TcvPeISUJRI/AAAAAAAABgM/YKr0RkyZdEI/s1600/mtv-webmasters.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="267" src="//3.bp.blogspot.com/_umsFxtJeCCI/TcvPeISUJRI/AAAAAAAABgM/YKr0RkyZdEI/s400/mtv-webmasters.jpg" width="400"></a></div> <em>Part of the Google Webmaster Team, Mountain View</em><br /> In contrast to the Google Webmaster Central Team&#8212;which mainly focuses on helping webmasters outside of Google understand web search and how things like crawling and indexing affect their sites&#8212;our team is responsible for designing, implementing, optimizing and maintaining Google&#8217;s corporate pages, informational product pages, landing pages for marketing campaigns, and our error page. Our team also develops internal tools to increase our productivity and help to maintain the thousands of HTML pages that we own.<br /> We&#8217;re working hard to follow, challenge and evolve best practices and web standards to ensure that all our new pages are produced to the highest quality and provide the best user experience, and we&#8217;re constantly evaluating and updating our legacy pages to ensure their deprecated HTML isn&#8217;t just left to rot.<br /> We want to share our work and experiences with other webmasters, so we recently launched our <a href="http://twitter.com/GoogleWebTeam">@GoogleWebTeam</a> account on Twitter to keep our followers updated on the latest news about our projects, web standards, and anything else which may be of interest to other webmasters, web designers and web developers. We&#8217;ll be posting here on the Webmaster Central Blog when we want to share anything longer than 140 characters.<br /> Before we share more details about our processes and experiences, please let us know if there&#8217;s anything you&#8217;d like us to specifically cover by leaving a comment here or by tweeting <a href="http://twitter.com/GoogleWebTeam">@GoogleWebTeam</a>.<br /> <span class="byline-author">Posted by <a href="https://plus.google.com/116226932711437764309/about" rel="author">Tony Ruscoe</a>, Google Webmaster 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 the Google Webmaster Team&url=https://webmasters.googleblog.com/2011/05/introducing-google-webmaster-team.html?hl=zh_CN&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/introducing-google-webmaster-team.html?hl=zh_CN'> <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/introducing-google-webmaster-team.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> </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=zh_CN' 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'> 星期三, 五月 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&#8217;ll be able to specify whether you&#8217;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&#8217;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. &#8220;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.&#8221; 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&#8217;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&#8217;ll be able to specify whether you&#8217;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&#8217;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. &#8220;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.&#8221; 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&#8217;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=zh_CN&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=zh_CN'> <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'> 标签&#65306; </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=zh_CN' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/performance?hl=zh_CN' rel='tag'> performance </a> </span> </div> </div> </div> <div class='post' data-id='37099330790789469' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2011/05/more-guidance-on-building-high-quality.html?hl=zh_CN' itemprop='url' title='More guidance on building high-quality sites'> More guidance on building high-quality sites </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> 星期五, 五月 06, 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: All<br /> In recent months we&#8217;ve been <a href="http://googleblog.blogspot.com/2011/02/finding-more-high-quality-sites-in.html">especially</a> <a href="http://googlewebmastercentral.blogspot.com/2011/04/high-quality-sites-algorithm-goes.html">focused</a> on helping people find high-quality sites in Google&#8217;s search results. The &#8220;Panda&#8221; algorithm change has improved rankings for a large number of high-quality websites, so most of you reading have nothing to be concerned about. However, for the sites that may have been affected by Panda we wanted to provide additional guidance on how Google searches for high-quality sites.<br /> Our advice for publishers continues to be to focus on delivering the best possible user experience on your websites and not to focus too much on what they think are Google&#8217;s current ranking algorithms or signals. Some publishers have fixated on our prior <a href="http://googleblog.blogspot.com/2011/02/finding-more-high-quality-sites-in.html">Panda algorithm change</a>, but Panda was just one of roughly 500 search improvements we expect to roll out to search this year. In fact, since we launched Panda, we've rolled out over a dozen additional tweaks to our ranking algorithms, and some sites have incorrectly assumed that changes in their rankings were related to Panda. Search is a complicated and evolving art and science, so rather than focusing on specific algorithmic tweaks, we encourage you to focus on delivering the best possible experience for users.<br /> <h3> What counts as a high-quality site?</h3> Our site quality algorithms are aimed at helping people find "high-quality" sites by reducing the rankings of low-quality content. The recent "Panda" change tackles the difficult task of algorithmically assessing website quality. Taking a step back, we wanted to explain some of the ideas and research that drive the development of our algorithms.<br /> Below are some questions that one could use to assess the "quality" of a page or an article. These are the kinds of questions we ask ourselves as we write algorithms that attempt to assess site quality. Think of it as our take at encoding what we think our users want.<br /> Of course, we aren't disclosing the actual ranking signals used in our algorithms because we don't want folks to game our search results; but if you want to step into Google's mindset, the questions below provide some guidance on how we've been looking at the issue: <br /> <ul> <li>Would you trust the information presented in this article?</li> <li>Is this article written by an expert or enthusiast who knows the topic well, or is it more shallow in nature?</li> <li>Does the site have duplicate, overlapping, or redundant articles on the same or similar topics with slightly different keyword variations?</li> <li>Would you be comfortable giving your credit card information to this site?</li> <li>Does this article have spelling, stylistic, or factual errors?</li> <li>Are the topics driven by genuine interests of readers of the site, or does the site generate content by attempting to guess what might rank well in search engines?</li> <li>Does the article provide original content or information, original reporting, original research, or original analysis?</li> <li>Does the page provide substantial value when compared to other pages in search results?</li> <li>How much quality control is done on content?</li> <li>Does the article describe both sides of a story?</li> <li>Is the site a recognized authority on its topic?</li> <li>Is the content mass-produced by or outsourced to a large number of creators, or spread across a large network of sites, so that individual pages or sites don&#8217;t get as much attention or care? </li> <li>Was the article edited well, or does it appear sloppy or hastily produced?</li> <li>For a health related query, would you trust information from this site?</li> <li>Would you recognize this site as an authoritative source when mentioned by name?</li> <li>Does this article provide a complete or comprehensive description of the topic?</li> <li>Does this article contain insightful analysis or interesting information that is beyond obvious?</li> <li>Is this the sort of page you&#8217;d want to bookmark, share with a friend, or recommend?</li> <li>Does this article have an excessive amount of ads that distract from or interfere with the main content?</li> <li>Would you expect to see this article in a printed magazine, encyclopedia or book?</li> <li>Are the articles short, unsubstantial, or otherwise lacking in helpful specifics?</li> <li>Are the pages produced with great care and attention to detail vs. less attention to detail?</li> <li>Would users complain when they see pages from this site?</li> </ul> Writing an algorithm to assess page or site quality is a much harder task, but we hope the questions above give some insight into how we try to write algorithms that distinguish higher-quality sites from lower-quality sites.<br /> <h3> What you can do</h3> We've been hearing from many of you that you want more guidance on what you can do to improve your rankings on Google, particularly if you think you've been impacted by the Panda update. We encourage you to keep questions like the ones above in mind as you focus on developing high-quality content rather than trying to optimize for any particular Google algorithm.<br /> One other specific piece of guidance we've offered is that low-quality content on some parts of a website can impact the whole site&#8217;s rankings, and thus removing low quality pages, merging or improving the content of individual shallow pages into more useful pages, or moving low quality pages to a different domain could eventually help the rankings of your higher-quality content.<br /> We're continuing to work on additional algorithmic iterations to help webmasters operating high-quality sites get more traffic from search. As you continue to improve your sites, rather than focusing on one particular algorithmic tweak, we encourage you to ask yourself the same sorts of questions we ask when looking at the big picture. This way your site will be more likely to rank well for the long-term. In the meantime, if you have feedback, please tell us through our <a href="//www.google.com/support/forum/p/Webmasters/?hl=en">Webmaster Forum</a>. We continue to monitor threads on the forum and pass site info on to the search quality team as we work on future iterations of our ranking algorithms.<br /> <span class="byline-author">Written by <a href="https://profiles.google.com/115744399689614835150/about" rel="author">Amit Singhal</a>, Google Fellow</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 /> In recent months we&#8217;ve been <a href="http://googleblog.blogspot.com/2011/02/finding-more-high-quality-sites-in.html">especially</a> <a href="http://googlewebmastercentral.blogspot.com/2011/04/high-quality-sites-algorithm-goes.html">focused</a> on helping people find high-quality sites in Google&#8217;s search results. The &#8220;Panda&#8221; algorithm change has improved rankings for a large number of high-quality websites, so most of you reading have nothing to be concerned about. However, for the sites that may have been affected by Panda we wanted to provide additional guidance on how Google searches for high-quality sites.<br /> Our advice for publishers continues to be to focus on delivering the best possible user experience on your websites and not to focus too much on what they think are Google&#8217;s current ranking algorithms or signals. Some publishers have fixated on our prior <a href="http://googleblog.blogspot.com/2011/02/finding-more-high-quality-sites-in.html">Panda algorithm change</a>, but Panda was just one of roughly 500 search improvements we expect to roll out to search this year. In fact, since we launched Panda, we've rolled out over a dozen additional tweaks to our ranking algorithms, and some sites have incorrectly assumed that changes in their rankings were related to Panda. Search is a complicated and evolving art and science, so rather than focusing on specific algorithmic tweaks, we encourage you to focus on delivering the best possible experience for users.<br /> <h3> What counts as a high-quality site?</h3> Our site quality algorithms are aimed at helping people find "high-quality" sites by reducing the rankings of low-quality content. The recent "Panda" change tackles the difficult task of algorithmically assessing website quality. Taking a step back, we wanted to explain some of the ideas and research that drive the development of our algorithms.<br /> Below are some questions that one could use to assess the "quality" of a page or an article. These are the kinds of questions we ask ourselves as we write algorithms that attempt to assess site quality. Think of it as our take at encoding what we think our users want.<br /> Of course, we aren't disclosing the actual ranking signals used in our algorithms because we don't want folks to game our search results; but if you want to step into Google's mindset, the questions below provide some guidance on how we've been looking at the issue: <br /> <ul> <li>Would you trust the information presented in this article?</li> <li>Is this article written by an expert or enthusiast who knows the topic well, or is it more shallow in nature?</li> <li>Does the site have duplicate, overlapping, or redundant articles on the same or similar topics with slightly different keyword variations?</li> <li>Would you be comfortable giving your credit card information to this site?</li> <li>Does this article have spelling, stylistic, or factual errors?</li> <li>Are the topics driven by genuine interests of readers of the site, or does the site generate content by attempting to guess what might rank well in search engines?</li> <li>Does the article provide original content or information, original reporting, original research, or original analysis?</li> <li>Does the page provide substantial value when compared to other pages in search results?</li> <li>How much quality control is done on content?</li> <li>Does the article describe both sides of a story?</li> <li>Is the site a recognized authority on its topic?</li> <li>Is the content mass-produced by or outsourced to a large number of creators, or spread across a large network of sites, so that individual pages or sites don&#8217;t get as much attention or care? </li> <li>Was the article edited well, or does it appear sloppy or hastily produced?</li> <li>For a health related query, would you trust information from this site?</li> <li>Would you recognize this site as an authoritative source when mentioned by name?</li> <li>Does this article provide a complete or comprehensive description of the topic?</li> <li>Does this article contain insightful analysis or interesting information that is beyond obvious?</li> <li>Is this the sort of page you&#8217;d want to bookmark, share with a friend, or recommend?</li> <li>Does this article have an excessive amount of ads that distract from or interfere with the main content?</li> <li>Would you expect to see this article in a printed magazine, encyclopedia or book?</li> <li>Are the articles short, unsubstantial, or otherwise lacking in helpful specifics?</li> <li>Are the pages produced with great care and attention to detail vs. less attention to detail?</li> <li>Would users complain when they see pages from this site?</li> </ul> Writing an algorithm to assess page or site quality is a much harder task, but we hope the questions above give some insight into how we try to write algorithms that distinguish higher-quality sites from lower-quality sites.<br /> <h3> What you can do</h3> We've been hearing from many of you that you want more guidance on what you can do to improve your rankings on Google, particularly if you think you've been impacted by the Panda update. We encourage you to keep questions like the ones above in mind as you focus on developing high-quality content rather than trying to optimize for any particular Google algorithm.<br /> One other specific piece of guidance we've offered is that low-quality content on some parts of a website can impact the whole site&#8217;s rankings, and thus removing low quality pages, merging or improving the content of individual shallow pages into more useful pages, or moving low quality pages to a different domain could eventually help the rankings of your higher-quality content.<br /> We're continuing to work on additional algorithmic iterations to help webmasters operating high-quality sites get more traffic from search. As you continue to improve your sites, rather than focusing on one particular algorithmic tweak, we encourage you to ask yourself the same sorts of questions we ask when looking at the big picture. This way your site will be more likely to rank well for the long-term. In the meantime, if you have feedback, please tell us through our <a href="//www.google.com/support/forum/p/Webmasters/?hl=en">Webmaster Forum</a>. We continue to monitor threads on the forum and pass site info on to the search quality team as we work on future iterations of our ranking algorithms.<br /> <span class="byline-author">Written by <a href="https://profiles.google.com/115744399689614835150/about" rel="author">Amit Singhal</a>, Google Fellow</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:More guidance on building high-quality sites&url=https://webmasters.googleblog.com/2011/05/more-guidance-on-building-high-quality.html?hl=zh_CN&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/more-guidance-on-building-high-quality.html?hl=zh_CN'> <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/more-guidance-on-building-high-quality.html' data-viewtype='FILTERED_POSTMOD'></div> <a href='https://plus.google.com/112374322230920073195' rel='author' style='display:none;'> Google </a> <div class='label-footer'> </div> </div> </div> <div class='post' data-id='7510063610961449094' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2011/05/flash-support-in-instant-previews.html?hl=zh_CN' itemprop='url' title='Flash support in Instant Previews'> Flash support in Instant Previews </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> 星期五, 五月 06, 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: All<br /> <br /> With <a href="http://googlewebmastercentral.blogspot.com/2010/11/instant-previews.html">Instant Previews</a>, users can see a snapshot of a search result before clicking on it. We&#8217;ve made a number of <a href="http://googleblog.blogspot.com/2011/04/this-week-in-search-41511.html">improvements</a> to the feature since its introduction last November, and if you own a site, one of the most relevant changes for you is that Instant Previews now supports Flash.<br /> <br /> <div style="text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnCYz6dLtRDOEZe6qjAaN1vhLN5fGjKXor6v0jGXjbqZBdcufEPRs_oj80I4QkLNtjS3S6yfIMFruld_xOWu6n2u518dGFbrCKd_ng7oLgrj2-r2G0nLn9IthxakeLRK-opCJ_/s1600/hubbleimage_full.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603459050946866546" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnCYz6dLtRDOEZe6qjAaN1vhLN5fGjKXor6v0jGXjbqZBdcufEPRs_oj80I4QkLNtjS3S6yfIMFruld_xOWu6n2u518dGFbrCKd_ng7oLgrj2-r2G0nLn9IthxakeLRK-opCJ_/s400/hubbleimage_full.png" style="cursor: hand; cursor: pointer; height: 218px; width: 400px;" /></a><br /> <br /> <i>An Instant Preview with rich content rendered</i></div> <br /> <br /> In most cases, when the preview for a page is generated through our regular crawl, we will now render a snapshot of any Flash components on the page. This will replace the "puzzle piece" icon that previously appeared to indicate Flash components, and should improve the accuracy of the previews.<br /> <br /> However, for pages that are fetched on demand by the "Google Web Preview" user-agent, we will generate a preview without Flash in order to minimize latency. In these cases the preview will appear as if the page were visited by someone using a browser without Flash enabled, and "Install Flash" messages may appear in the preview, depending on how your website handles users without Flash.<br /> <br /> To improve your previews for these on-demand renders, here are some guidelines for using Flash on your site:<br /> <ul> <li><span style="font-weight: bold;">Make sure that your site has a reasonable, seamless experience for visitors without Flash.</span> This may involve creating HTML-only equivalents for your Flash-based content that will automatically be shown to visitors who can't view Flash. Providing a good experience for this case will improve your preview and make your visitors happier.</li> <br /> <li>If Flash components are rendering but appear as loading screens instead of actual content, <span style="font-weight: bold;">try reducing the loading time for the component</span>. This makes it more likely we'll render it properly.</li> <br /> <li>If you have Flash videos on your site, <span style="font-weight: bold;">consider <a href="//www.google.com/support/webmasters/bin/answer.py?answer=80472">submitting a Video Sitemap</a></span> which helps us to generate thumbnails for your videos in Instant Previews.</li> <br /> <li>If most of the page is rendering properly but you still see puzzle pieces appearing for some smaller components, these may be fixed in future crawls of your page.</li> </ul> If you have additional questions, please feel free to post them in our <a href="//www.google.com/support/forum/p/Webmasters">Webmaster Help Forum</a>.<br /> <br /> As always, we'll keep you updated as we continue to make improvements to Instant Previews. <br /> <br /> <span class="byline-author">Posted by <a href="https://profiles.google.com/115089700492449724230/about" rel="author">Raj Krishnan</a>, Product 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: All<br /> <br /> With <a href="http://googlewebmastercentral.blogspot.com/2010/11/instant-previews.html">Instant Previews</a>, users can see a snapshot of a search result before clicking on it. We&#8217;ve made a number of <a href="http://googleblog.blogspot.com/2011/04/this-week-in-search-41511.html">improvements</a> to the feature since its introduction last November, and if you own a site, one of the most relevant changes for you is that Instant Previews now supports Flash.<br /> <br /> <div style="text-align: center;"> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnCYz6dLtRDOEZe6qjAaN1vhLN5fGjKXor6v0jGXjbqZBdcufEPRs_oj80I4QkLNtjS3S6yfIMFruld_xOWu6n2u518dGFbrCKd_ng7oLgrj2-r2G0nLn9IthxakeLRK-opCJ_/s1600/hubbleimage_full.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" id="BLOGGER_PHOTO_ID_5603459050946866546" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnCYz6dLtRDOEZe6qjAaN1vhLN5fGjKXor6v0jGXjbqZBdcufEPRs_oj80I4QkLNtjS3S6yfIMFruld_xOWu6n2u518dGFbrCKd_ng7oLgrj2-r2G0nLn9IthxakeLRK-opCJ_/s400/hubbleimage_full.png" style="cursor: hand; cursor: pointer; height: 218px; width: 400px;" /></a><br /> <br /> <i>An Instant Preview with rich content rendered</i></div> <br /> <br /> In most cases, when the preview for a page is generated through our regular crawl, we will now render a snapshot of any Flash components on the page. This will replace the "puzzle piece" icon that previously appeared to indicate Flash components, and should improve the accuracy of the previews.<br /> <br /> However, for pages that are fetched on demand by the "Google Web Preview" user-agent, we will generate a preview without Flash in order to minimize latency. In these cases the preview will appear as if the page were visited by someone using a browser without Flash enabled, and "Install Flash" messages may appear in the preview, depending on how your website handles users without Flash.<br /> <br /> To improve your previews for these on-demand renders, here are some guidelines for using Flash on your site:<br /> <ul> <li><span style="font-weight: bold;">Make sure that your site has a reasonable, seamless experience for visitors without Flash.</span> This may involve creating HTML-only equivalents for your Flash-based content that will automatically be shown to visitors who can't view Flash. Providing a good experience for this case will improve your preview and make your visitors happier.</li> <br /> <li>If Flash components are rendering but appear as loading screens instead of actual content, <span style="font-weight: bold;">try reducing the loading time for the component</span>. This makes it more likely we'll render it properly.</li> <br /> <li>If you have Flash videos on your site, <span style="font-weight: bold;">consider <a href="//www.google.com/support/webmasters/bin/answer.py?answer=80472">submitting a Video Sitemap</a></span> which helps us to generate thumbnails for your videos in Instant Previews.</li> <br /> <li>If most of the page is rendering properly but you still see puzzle pieces appearing for some smaller components, these may be fixed in future crawls of your page.</li> </ul> If you have additional questions, please feel free to post them in our <a href="//www.google.com/support/forum/p/Webmasters">Webmaster Help Forum</a>.<br /> <br /> As always, we'll keep you updated as we continue to make improvements to Instant Previews. <br /> <br /> <span class="byline-author">Posted by <a href="https://profiles.google.com/115089700492449724230/about" rel="author">Raj Krishnan</a>, Product 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:Flash support in Instant Previews&url=https://webmasters.googleblog.com/2011/05/flash-support-in-instant-previews.html?hl=zh_CN&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/flash-support-in-instant-previews.html?hl=zh_CN'> <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/flash-support-in-instant-previews.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'> 标签&#65306; </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/advanced?hl=zh_CN' rel='tag'> advanced </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/beginner?hl=zh_CN' rel='tag'> beginner </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=zh_CN' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/search%20results?hl=zh_CN' rel='tag'> search results </a> </span> </div> </div> </div> <div class='post' data-id='7023074360821327316' itemscope='' itemtype='http://schema.org/BlogPosting'> <h2 class='title' itemprop='name'> <a href='https://webmasters.googleblog.com/2011/05/do-404s-hurt-my-site.html?hl=zh_CN' itemprop='url' title='Do 404s hurt my site?'> Do 404s hurt my site? </a> </h2> <div class='post-header'> <div class='published'> <span class='publishdate' itemprop='datePublished'> 星期一, 五月 02, 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: Beginner/Intermediate<br /> <br /> So there you are, minding your own business, using Webmaster Tools to check out how awesome your site is... but, wait! The <a href="//www.google.com/support/webmasters/bin/answer.py?answer=35120">Crawl errors</a> page is full of <a href="http://googlewebmastercentral.blogspot.com/2008/08/its-404-week-at-webmaster-central.html"><span style="font-weight: bold;">404 (Not found)</span> errors</a>! <span style="font-style: italic;">Is disaster imminent??</span><br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="//3.bp.blogspot.com/-TcWC1XcgM8o/Tb55Xb6fMZI/AAAAAAAAAHQ/t_-34Vddfgo/s1600/Screen+shot+2011-04-13+at+3.59.27+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="//3.bp.blogspot.com/-TcWC1XcgM8o/Tb55Xb6fMZI/AAAAAAAAAHQ/t_-34Vddfgo/s320/Screen+shot+2011-04-13+at+3.59.27+PM.png" width="320"></a></div> <br /> Fear not, my young padawan. Let&#8217;s take a look at 404s and how they do (or do not) affect your site:<br /> <br /> <span style="font-weight: bold;">Q: Do the 404 errors reported in Webmaster Tools affect my site&#8217;s ranking?<br />A:</span> 404s are a perfectly normal part of the web; the Internet is always changing, new content is born, old content dies, and when it dies it (ideally) returns a 404 HTTP response code. Search engines are aware of this; we have 404 errors on our own sites, as you can see above, and we find them all over the web. In fact, we actually <span style="font-style: italic;">prefer</span> that, when you get rid of a page on your site, you make sure that it returns a proper 404 or 410 response code (rather than a &#8220;soft 404&#8221;). Keep in mind that in order for our crawler to see the HTTP response code of a URL, it has to be able to crawl that URL&#8212;if the URL is blocked by your robots.txt file we won&#8217;t be able to crawl it and see its response code. The fact that some URLs on your site no longer exist / return 404s does not affect how your site&#8217;s other URLs (the ones that return <a href="//www.google.com/support/webmasters/bin/answer.py?answer=40132">200 (Successful)</a>) perform in our search results.<br /> <span style="font-weight: bold;"><br />Q: So 404s don&#8217;t hurt my website at all?<br />A:</span> If some URLs on your site 404, this fact alone does not hurt you or count against you in Google&#8217;s search results. However, there may be other reasons that you&#8217;d want to address certain types of 404s. For example, if some of the pages that 404 are pages you actually care about, you should look into why we&#8217;re seeing 404s when we crawl them! If you see a misspelling of a legitimate URL (<span style="font-family: monospace;">www.example.com/awsome</span> instead of <span style="font-family: monospace;">www.example.com/awesome</span>), it&#8217;s likely that someone intended to link to you and simply made a typo. Instead of returning a 404, you could 301 redirect the misspelled URL to the correct URL and capture the intended traffic from that link. You can also make sure that, when users do land on a 404 page on your site, you <a href="//www.google.com/support/webmasters/bin/answer.py?answer=136085">help them find what they were looking for</a> rather than just saying &#8220;404 Not found."<br /> <br /> <span style="font-weight: bold;">Q: Tell me more about &#8220;soft 404s.&#8221;<br />A:</span> A <a href="//www.google.com/support/webmasters/bin/answer.py?answer=181708">soft 404</a> is when a web server returns a response code other than 404 (or 410) for a URL that doesn&#8217;t exist. A common example is when a site owner wants to return <a href="http://googlewebmastercentral.blogspot.com/2008/08/make-your-404-pages-more-useful.html">a pretty 404 page with helpful information for his users</a>, and thinks that in order to serve content to users he has to return a 200 response code. Not so! You can return a 404 response code <span style="font-style: italic;">while</span> serving whatever content you want. Another example is when a site redirects any unknown URLs to their homepage instead of returning 404s. Both of these cases can have negative effects on our understanding and indexing of your site, so we recommend making sure your server returns the proper response codes for nonexistent content. Keep in mind that <span style="font-weight: bold;">just because a page <span style="font-style: italic;">says</span> &#8220;404 Not Found,&#8221; doesn&#8217;t mean it&#8217;s actually returning a 404 HTTP response code</span>&#8212;use the <a href="//www.google.com/support/webmasters/bin/answer.py?answer=158587">Fetch as Googlebot</a> feature in Webmaster Tools to double-check. If you don&#8217;t know how to configure your server to return the right response codes, check out your web host&#8217;s help documentation.<br /> <br /> <span style="font-weight: bold;">Q: How do I know whether a URL should 404, or 301, or 410?<br />A:</span> When you remove a page from your site, think about whether that content is moving somewhere else, or whether you no longer plan to have that type of content on your site. If you&#8217;re moving that content to a new URL, you should 301 redirect the old URL to the new URL&#8212;that way when users come to the old URL looking for that content, they&#8217;ll be automatically redirected to something relevant to what they were looking for. If you&#8217;re getting rid of that content entirely and don&#8217;t have anything on your site that would fill the same user need, then the old URL should return a 404 or 410. Currently Google treats 410s (Gone) the same as 404s (Not found), so it&#8217;s immaterial to us whether you return one or the other.<br /> <br /> <span style="font-weight: bold;">Q: Most of my 404s are for bizarro URLs that never existed on my site. What&#8217;s up with that? Where did they come from?<br />A:</span> If Google finds a link somewhere on the web that points to a URL on your domain, it may try to crawl that link, whether any content actually exists there or not; and when it does, your server <span style="font-style: italic;">should</span> return a 404 if there&#8217;s nothing there to find. These links could be caused by someone making a typo when linking to you, some type of misconfiguration (if the links are automatically generated, e.g. by a CMS), or by Google&#8217;s increased efforts to recognize and crawl links embedded in JavaScript or other embedded content; or they may be part of a quick check from our side to see how your server handles unknown URLs, to name just a few. If you see 404s reported in Webmaster Tools for URLs that don&#8217;t exist on your site, you can safely ignore them. We don&#8217;t know which URLs are important to you vs. which are supposed to 404, so we show you <span style="font-style: italic;">all</span> the 404s we found on your site and let you decide which, if any, require your attention.<br /> <br /> <span style="font-weight: bold;">Q: Someone has scraped my site and caused a bunch of 404s in the process. They&#8217;re all &#8220;real&#8221; URLs with other code tacked on, like <span style="color: #3333ff; text-decoration: underline;">http://www.example.com/images/kittens.jpg" width="100" height="300" alt="kittens"/&gt;&lt;/a...</span> Will this hurt my site?<br />A:</span> Generally you don&#8217;t need to worry about &#8220;broken links&#8221; like this hurting your site. We understand that site owners have little to no control over people who scrape their site, or who link to them in strange ways. If you&#8217;re a whiz with the <a href="//www.google.com/search?q=define:regex">regex</a>, you could consider redirecting these URLs <a href="//www.google.com/support/forum/p/Webmasters/thread?tid=4ec2d1220ac304a3&amp;hl=en">as described here</a>, but generally it&#8217;s not worth worrying about. Remember that you can also file a <a href="//www.google.com/dmca.html">takedown request</a> when you believe someone is stealing original content from your website.<br /> <br /> <b>Q: Last week I fixed all the 404s that Webmaster Tools reported, but they&#8217;re still listed in my account. Does this mean I didn&#8217;t fix them correctly? How long will it take for them to disappear?<br />A:</b> Take a look at the &#8216;Detected&#8217; column on the Crawl errors page&#8212;this is the most recent date on which we detected each error. If the date(s) in that column are from before the time you fixed the errors, that means we haven&#8217;t encountered these errors since that date. If the dates are more recent, it means we&#8217;re continuing to see these 404s when we crawl.<br /> <br /> After implementing a fix, you can check whether our crawler is seeing the new response code by using <a href="//www.google.com/support/webmasters/bin/answer.py?answer=158587">Fetch as Googlebot</a>. Test a few URLs and, if they look good, these errors should soon start to disappear from your list of Crawl errors.<br /> <b><br />Q: Can I use Google&#8217;s URL removal tool to make 404 errors disappear from my account faster?<br />A:</b> No; the URL removal tool removes URLs from Google&#8217;s search results, not from your Webmaster Tools account. It&#8217;s designed for urgent removal requests only, and using it isn&#8217;t necessary when a URL already returns a 404, as such a URL will drop out of our search results naturally over time. See the bottom half of <a href="http://googlewebmastercentral.blogspot.com/2010/05/url-removal-explained-part-iv-tracking.html">this blog post</a> for more details on what the URL removal tool can and can&#8217;t do for you.<br /> <br /> Still want to know more about 404s? Check out <a href="http://googlewebmastercentral.blogspot.com/search?q=%22404+week%22">404 week</a> from our blog, or drop by 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/posts" 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: Beginner/Intermediate<br /> <br /> So there you are, minding your own business, using Webmaster Tools to check out how awesome your site is... but, wait! The <a href="//www.google.com/support/webmasters/bin/answer.py?answer=35120">Crawl errors</a> page is full of <a href="http://googlewebmastercentral.blogspot.com/2008/08/its-404-week-at-webmaster-central.html"><span style="font-weight: bold;">404 (Not found)</span> errors</a>! <span style="font-style: italic;">Is disaster imminent??</span><br /> <br /> <div class="separator" style="clear: both; text-align: center;"> <a href="//3.bp.blogspot.com/-TcWC1XcgM8o/Tb55Xb6fMZI/AAAAAAAAAHQ/t_-34Vddfgo/s1600/Screen+shot+2011-04-13+at+3.59.27+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="214" src="//3.bp.blogspot.com/-TcWC1XcgM8o/Tb55Xb6fMZI/AAAAAAAAAHQ/t_-34Vddfgo/s320/Screen+shot+2011-04-13+at+3.59.27+PM.png" width="320"></a></div> <br /> Fear not, my young padawan. Let&#8217;s take a look at 404s and how they do (or do not) affect your site:<br /> <br /> <span style="font-weight: bold;">Q: Do the 404 errors reported in Webmaster Tools affect my site&#8217;s ranking?<br />A:</span> 404s are a perfectly normal part of the web; the Internet is always changing, new content is born, old content dies, and when it dies it (ideally) returns a 404 HTTP response code. Search engines are aware of this; we have 404 errors on our own sites, as you can see above, and we find them all over the web. In fact, we actually <span style="font-style: italic;">prefer</span> that, when you get rid of a page on your site, you make sure that it returns a proper 404 or 410 response code (rather than a &#8220;soft 404&#8221;). Keep in mind that in order for our crawler to see the HTTP response code of a URL, it has to be able to crawl that URL&#8212;if the URL is blocked by your robots.txt file we won&#8217;t be able to crawl it and see its response code. The fact that some URLs on your site no longer exist / return 404s does not affect how your site&#8217;s other URLs (the ones that return <a href="//www.google.com/support/webmasters/bin/answer.py?answer=40132">200 (Successful)</a>) perform in our search results.<br /> <span style="font-weight: bold;"><br />Q: So 404s don&#8217;t hurt my website at all?<br />A:</span> If some URLs on your site 404, this fact alone does not hurt you or count against you in Google&#8217;s search results. However, there may be other reasons that you&#8217;d want to address certain types of 404s. For example, if some of the pages that 404 are pages you actually care about, you should look into why we&#8217;re seeing 404s when we crawl them! If you see a misspelling of a legitimate URL (<span style="font-family: monospace;">www.example.com/awsome</span> instead of <span style="font-family: monospace;">www.example.com/awesome</span>), it&#8217;s likely that someone intended to link to you and simply made a typo. Instead of returning a 404, you could 301 redirect the misspelled URL to the correct URL and capture the intended traffic from that link. You can also make sure that, when users do land on a 404 page on your site, you <a href="//www.google.com/support/webmasters/bin/answer.py?answer=136085">help them find what they were looking for</a> rather than just saying &#8220;404 Not found."<br /> <br /> <span style="font-weight: bold;">Q: Tell me more about &#8220;soft 404s.&#8221;<br />A:</span> A <a href="//www.google.com/support/webmasters/bin/answer.py?answer=181708">soft 404</a> is when a web server returns a response code other than 404 (or 410) for a URL that doesn&#8217;t exist. A common example is when a site owner wants to return <a href="http://googlewebmastercentral.blogspot.com/2008/08/make-your-404-pages-more-useful.html">a pretty 404 page with helpful information for his users</a>, and thinks that in order to serve content to users he has to return a 200 response code. Not so! You can return a 404 response code <span style="font-style: italic;">while</span> serving whatever content you want. Another example is when a site redirects any unknown URLs to their homepage instead of returning 404s. Both of these cases can have negative effects on our understanding and indexing of your site, so we recommend making sure your server returns the proper response codes for nonexistent content. Keep in mind that <span style="font-weight: bold;">just because a page <span style="font-style: italic;">says</span> &#8220;404 Not Found,&#8221; doesn&#8217;t mean it&#8217;s actually returning a 404 HTTP response code</span>&#8212;use the <a href="//www.google.com/support/webmasters/bin/answer.py?answer=158587">Fetch as Googlebot</a> feature in Webmaster Tools to double-check. If you don&#8217;t know how to configure your server to return the right response codes, check out your web host&#8217;s help documentation.<br /> <br /> <span style="font-weight: bold;">Q: How do I know whether a URL should 404, or 301, or 410?<br />A:</span> When you remove a page from your site, think about whether that content is moving somewhere else, or whether you no longer plan to have that type of content on your site. If you&#8217;re moving that content to a new URL, you should 301 redirect the old URL to the new URL&#8212;that way when users come to the old URL looking for that content, they&#8217;ll be automatically redirected to something relevant to what they were looking for. If you&#8217;re getting rid of that content entirely and don&#8217;t have anything on your site that would fill the same user need, then the old URL should return a 404 or 410. Currently Google treats 410s (Gone) the same as 404s (Not found), so it&#8217;s immaterial to us whether you return one or the other.<br /> <br /> <span style="font-weight: bold;">Q: Most of my 404s are for bizarro URLs that never existed on my site. What&#8217;s up with that? Where did they come from?<br />A:</span> If Google finds a link somewhere on the web that points to a URL on your domain, it may try to crawl that link, whether any content actually exists there or not; and when it does, your server <span style="font-style: italic;">should</span> return a 404 if there&#8217;s nothing there to find. These links could be caused by someone making a typo when linking to you, some type of misconfiguration (if the links are automatically generated, e.g. by a CMS), or by Google&#8217;s increased efforts to recognize and crawl links embedded in JavaScript or other embedded content; or they may be part of a quick check from our side to see how your server handles unknown URLs, to name just a few. If you see 404s reported in Webmaster Tools for URLs that don&#8217;t exist on your site, you can safely ignore them. We don&#8217;t know which URLs are important to you vs. which are supposed to 404, so we show you <span style="font-style: italic;">all</span> the 404s we found on your site and let you decide which, if any, require your attention.<br /> <br /> <span style="font-weight: bold;">Q: Someone has scraped my site and caused a bunch of 404s in the process. They&#8217;re all &#8220;real&#8221; URLs with other code tacked on, like <span style="color: #3333ff; text-decoration: underline;">http://www.example.com/images/kittens.jpg" width="100" height="300" alt="kittens"/&gt;&lt;/a...</span> Will this hurt my site?<br />A:</span> Generally you don&#8217;t need to worry about &#8220;broken links&#8221; like this hurting your site. We understand that site owners have little to no control over people who scrape their site, or who link to them in strange ways. If you&#8217;re a whiz with the <a href="//www.google.com/search?q=define:regex">regex</a>, you could consider redirecting these URLs <a href="//www.google.com/support/forum/p/Webmasters/thread?tid=4ec2d1220ac304a3&amp;hl=en">as described here</a>, but generally it&#8217;s not worth worrying about. Remember that you can also file a <a href="//www.google.com/dmca.html">takedown request</a> when you believe someone is stealing original content from your website.<br /> <br /> <b>Q: Last week I fixed all the 404s that Webmaster Tools reported, but they&#8217;re still listed in my account. Does this mean I didn&#8217;t fix them correctly? How long will it take for them to disappear?<br />A:</b> Take a look at the &#8216;Detected&#8217; column on the Crawl errors page&#8212;this is the most recent date on which we detected each error. If the date(s) in that column are from before the time you fixed the errors, that means we haven&#8217;t encountered these errors since that date. If the dates are more recent, it means we&#8217;re continuing to see these 404s when we crawl.<br /> <br /> After implementing a fix, you can check whether our crawler is seeing the new response code by using <a href="//www.google.com/support/webmasters/bin/answer.py?answer=158587">Fetch as Googlebot</a>. Test a few URLs and, if they look good, these errors should soon start to disappear from your list of Crawl errors.<br /> <b><br />Q: Can I use Google&#8217;s URL removal tool to make 404 errors disappear from my account faster?<br />A:</b> No; the URL removal tool removes URLs from Google&#8217;s search results, not from your Webmaster Tools account. It&#8217;s designed for urgent removal requests only, and using it isn&#8217;t necessary when a URL already returns a 404, as such a URL will drop out of our search results naturally over time. See the bottom half of <a href="http://googlewebmastercentral.blogspot.com/2010/05/url-removal-explained-part-iv-tracking.html">this blog post</a> for more details on what the URL removal tool can and can&#8217;t do for you.<br /> <br /> Still want to know more about 404s? Check out <a href="http://googlewebmastercentral.blogspot.com/search?q=%22404+week%22">404 week</a> from our blog, or drop by 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/posts" 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:Do 404s hurt my site?&url=https://webmasters.googleblog.com/2011/05/do-404s-hurt-my-site.html?hl=zh_CN&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/do-404s-hurt-my-site.html?hl=zh_CN'> <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/do-404s-hurt-my-site.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'> 标签&#65306; </span> <span class='labels'> <a class='label' href='https://webmasters.googleblog.com/search/label/beginner?hl=zh_CN' rel='tag'> beginner </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/crawling%20and%20indexing?hl=zh_CN' rel='tag'> crawling and indexing </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/intermediate?hl=zh_CN' rel='tag'> intermediate </a> , <a class='label' href='https://webmasters.googleblog.com/search/label/webmaster%20tools?hl=zh_CN' rel='tag'> webmaster tools </a> </span> </div> </div> </div> <div class='blog-pager' id='blog-pager'> <a class='home-link' href='https://webmasters.googleblog.com/?hl=zh_CN'> <i class='material-icons'> &#59530; </i> </a> <span id='blog-pager-newer-link'> <a class='blog-pager-newer-link' href='https://webmasters.googleblog.com/search?updated-max=2011-06-27T12:31:00-07:00&max-results=7&reverse-paginate=true&hl=zh_CN' id='Blog1_blog-pager-newer-link' title='较新的博文'> <i class='material-icons'> &#58820; </i> </a> </span> <span id='blog-pager-older-link'> <a class='blog-pager-older-link' href='https://webmasters.googleblog.com/search?updated-max=2011-05-02T09:00:00-07:00&max-results=7&hl=zh_CN' id='Blog1_blog-pager-older-link' title='较旧的博文'> <i class='material-icons'> &#58824; </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> 标签 </h2> <i class='material-icons arrow'> &#58821; </i> </div> <div class='widget-content list-label-widget-content'> <ul> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/accessibility?hl=zh_CN'> accessibility </a> <span dir='ltr'> 10 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/advanced?hl=zh_CN'> advanced </a> <span dir='ltr'> 195 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/AMP?hl=zh_CN'> AMP </a> <span dir='ltr'> 13 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Android?hl=zh_CN'> Android </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/API?hl=zh_CN'> API </a> <span dir='ltr'> 7 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/apps?hl=zh_CN'> apps </a> <span dir='ltr'> 7 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/autocomplete?hl=zh_CN'> autocomplete </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/beginner?hl=zh_CN'> beginner </a> <span dir='ltr'> 173 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/CAPTCHA?hl=zh_CN'> CAPTCHA </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Chrome?hl=zh_CN'> Chrome </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/cms?hl=zh_CN'> cms </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/crawling%20and%20indexing?hl=zh_CN'> crawling and indexing </a> <span dir='ltr'> 158 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/encryption?hl=zh_CN'> encryption </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/events?hl=zh_CN'> events </a> <span dir='ltr'> 51 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/feedback%20and%20communication?hl=zh_CN'> feedback and communication </a> <span dir='ltr'> 83 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/forums?hl=zh_CN'> forums </a> <span dir='ltr'> 5 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/general%20tips?hl=zh_CN'> general tips </a> <span dir='ltr'> 90 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/geotargeting?hl=zh_CN'> geotargeting </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Google%20Assistant?hl=zh_CN'> Google Assistant </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Google%20I%2FO?hl=zh_CN'> Google I/O </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Google%20Images?hl=zh_CN'> Google Images </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Google%20News?hl=zh_CN'> Google News </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/hacked%20sites?hl=zh_CN'> hacked sites </a> <span dir='ltr'> 12 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/hangout?hl=zh_CN'> hangout </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/hreflang?hl=zh_CN'> hreflang </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/https?hl=zh_CN'> https </a> <span dir='ltr'> 5 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/images?hl=zh_CN'> images </a> <span dir='ltr'> 12 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/intermediate?hl=zh_CN'> intermediate </a> <span dir='ltr'> 205 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/interstitials?hl=zh_CN'> interstitials </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/javascript?hl=zh_CN'> javascript </a> <span dir='ltr'> 8 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/job%20search?hl=zh_CN'> job search </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/localization?hl=zh_CN'> localization </a> <span dir='ltr'> 21 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/malware?hl=zh_CN'> malware </a> <span dir='ltr'> 6 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/mobile?hl=zh_CN'> mobile </a> <span dir='ltr'> 63 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/mobile-friendly?hl=zh_CN'> mobile-friendly </a> <span dir='ltr'> 14 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/nohacked?hl=zh_CN'> nohacked </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/performance?hl=zh_CN'> performance </a> <span dir='ltr'> 17 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/product%20expert?hl=zh_CN'> product expert </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/product%20experts?hl=zh_CN'> product experts </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/products%20and%20services?hl=zh_CN'> products and services </a> <span dir='ltr'> 63 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/questions?hl=zh_CN'> questions </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/ranking?hl=zh_CN'> ranking </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/recipes?hl=zh_CN'> recipes </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/rendering?hl=zh_CN'> rendering </a> <span dir='ltr'> 2 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/Responsive%20Web%20Design?hl=zh_CN'> Responsive Web Design </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/rich%20cards?hl=zh_CN'> rich cards </a> <span dir='ltr'> 7 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/rich%20results?hl=zh_CN'> rich results </a> <span dir='ltr'> 10 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/search%20console?hl=zh_CN'> search console </a> <span dir='ltr'> 35 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/search%20for%20beginners?hl=zh_CN'> search for beginners </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/search%20queries?hl=zh_CN'> search queries </a> <span dir='ltr'> 7 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/search%20results?hl=zh_CN'> search results </a> <span dir='ltr'> 140 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/security?hl=zh_CN'> security </a> <span dir='ltr'> 12 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/seo?hl=zh_CN'> seo </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/sitemaps?hl=zh_CN'> sitemaps </a> <span dir='ltr'> 46 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/speed?hl=zh_CN'> speed </a> <span dir='ltr'> 6 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/structured%20data?hl=zh_CN'> structured data </a> <span dir='ltr'> 33 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/summit?hl=zh_CN'> summit </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/TLDs?hl=zh_CN'> TLDs </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/url%20removals?hl=zh_CN'> url removals </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/UX?hl=zh_CN'> UX </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/verification?hl=zh_CN'> verification </a> <span dir='ltr'> 8 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/video?hl=zh_CN'> video </a> <span dir='ltr'> 6 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/webmaster%20community?hl=zh_CN'> webmaster community </a> <span dir='ltr'> 24 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/webmaster%20forum?hl=zh_CN'> webmaster forum </a> <span dir='ltr'> 1 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/webmaster%20guidelines?hl=zh_CN'> webmaster guidelines </a> <span dir='ltr'> 57 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/webmaster%20tools?hl=zh_CN'> webmaster tools </a> <span dir='ltr'> 177 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/webmasters?hl=zh_CN'> webmasters </a> <span dir='ltr'> 3 </span> </li> <li> <a dir='ltr' href='https://webmasters.googleblog.com/search/label/youtube%20channel?hl=zh_CN'> 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'> &#58055; </i> <h2> Archive </h2> <i class='material-icons arrow'> &#58821; </i> </div> <div class='widget-content'> <div id='ArchiveList'> <div id='BlogArchive1_ArchiveList'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/?hl=zh_CN'> 2020 </a> </div> <div class='items'> <ul class='hierarchy'> <li class='archivedate collapsed'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2020/11/?hl=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2019/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2018/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2017/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2016/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2015/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2014/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2013/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2012/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </a> </div> <div class='items'> </div> </li> </ul> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <div class='intervalToggle'> <span class='new-toggle' href='javascript:void(0)'> <i class='material-icons arrow'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy toggle-open'> <i class='material-icons'> &#58823; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </a> </div> <div class='items'> </div> </li> </ul> <ul class='hierarchy'> <li class='archivedate expanded'> <div class=''> <a class='post-count-link' href='https://webmasters.googleblog.com/2011/05/?hl=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2010/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2009/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2008/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2007/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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=zh_CN'> 7月 </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=zh_CN'> 6月 </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=zh_CN'> 5月 </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=zh_CN'> 4月 </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=zh_CN'> 3月 </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=zh_CN'> 2月 </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=zh_CN'> 1月 </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'> &#58821; </i> </span> <a class='toggle' href='javascript:void(0)' style='display: none'> <span class='zippy'> <i class='material-icons'> &#58821; </i> &#160; </span> </a> <a class='post-count-link' href='https://webmasters.googleblog.com/2006/?hl=zh_CN'> 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=zh_CN'> 12月 </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=zh_CN'> 11月 </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=zh_CN'> 10月 </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=zh_CN'> 9月 </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=zh_CN'> 8月 </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/&amp;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/3704019819-widgets.js"></script> <script type='text/javascript'> window['__wavt'] = 'AOuZoY5iTEfZkR-ujiDkLortu-mL_FUjxw:1733967071062';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d32069983','//webmasters.googleblog.com/2011/05/?hl\x3dzh_CN','32069983'); _WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '32069983', 'title': 'Official Google Webmaster Central Blog', 'url': 'https://webmasters.googleblog.com/2011/05/?hl\x3dzh_CN', 'canonicalUrl': 'https://webmasters.googleblog.com/2011/05/', 'homepageUrl': 'https://webmasters.googleblog.com/?hl\x3dzh_CN', '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': 'zh-CN', 'localeUnderscoreDelimited': 'zh_cn', '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/13847555b6acda6c', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': '\u83b7\u53d6\u94fe\u63a5', 'key': 'link', 'shareMessage': '\u83b7\u53d6\u94fe\u63a5', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': '\u5206\u4eab\u5230 Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': '\u5206\u4eab\u5230 X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': '\u5206\u4eab\u5230 Pinterest', 'target': 'pinterest'}, {'name': '\u7535\u5b50\u90ae\u4ef6', 'key': 'email', 'shareMessage': '\u7535\u5b50\u90ae\u4ef6', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27zh_CN\x27};\x3c/script\x3e'}, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': '\u9605\u8bfb\u5168\u6587', 'pageType': 'archive', 'pageName': '\u4e94\u6708 2011', 'pageTitle': 'Official Google Webmaster Central Blog: \u4e94\u6708 2011', 'metaDescription': 'Official news on crawling and indexing sites for the Google index'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': '\u4fee\u6539', 'linkCopiedToClipboard': '\u94fe\u63a5\u5df2\u590d\u5236\u5230\u526a\u8d34\u677f\uff01', 'ok': '\u786e\u5b9a', 'postLink': '\u535a\u6587\u94fe\u63a5'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': '\u81ea\u5b9a\u4e49', '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/2011/05/?hl\x3dzh_CN', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': true, 'isLabelSearch': false, 'archive': {'year': 2011, 'month': 5, 'rangeMessage': '\u76ee\u524d\u663e\u793a\u7684\u662f \u4e94\u6708, 2011\u7684\u535a\u6587'}}}]); _WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); _WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'main', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false}, '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': '\u6b63\u5728\u52a0\u8f7d\u2026'}, '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>

Pages: 1 2 3 4 5 6 7 8 9 10