Stay organized with collections
Save and categorize content based on your preferences.
Monday, December 04, 2017
The
AJAX crawling scheme
was introduced as a way of making JavaScript-based webpages accessible to Googlebot, and we've
previously announced our
plans to turn it down.
Over time, Google engineers have significantly improved rendering of JavaScript for Googlebot.
Given these advances, in the second quarter of 2018, we'll be switching to rendering these pages
on Google's side, rather than on requiring that sites do this themselves. In short, we'll no
longer be using the AJAX crawling scheme.
As a reminder, the AJAX crawling scheme accepts pages with either a #! in the URL or a
fragment meta tag
on them, and then crawls them with an ?_escaped_fragment_= in the URL. That escaped
version needs to be a fully-rendered and/or equivalent version of the page, created by the website
itself.
With this change, Googlebot will render the #! URL directly, making it unnecessary
for the website owner to provide a rendered version of the page. We'll continue to support these
URLs in our search results.
We expect that most AJAX-crawling websites won't see significant changes with this update.
Webmasters can double-check their pages as detailed below, and we'll be sending notifications to
any sites with potential issues.
If your site is currently using either #! URLs or the fragment meta tag, we
recommend:
Verify ownership of the website in
Google Search Console
to gain access to the tools there, and to allow Google to notify you of any issues that might be
found.
Test with Search Console's
Fetch and Render.
Compare the results of the #! URL and the escaped URL to see any differences. Do this for any
significantly different part of the website. Check our
developer documentation for
more information on supported APIs, and see our
debugging guide when needed.
Content in Flash, Silverlight, or other plugin-based technologies needs to be converted to
either JavaScript or "normal" HTML, if their content should be indexed in search.
We hope that this change makes it a bit easier for your website, and reduces the need to render
pages on your end. Should you have any questions or comments, drop by our
webmaster help forums,
or to join our
JavaScript sites working group.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],[],[[["\u003cp\u003eGoogle will no longer use the AJAX crawling scheme and instead directly render pages with \u003ccode\u003e#!\u003c/code\u003e in the URL or fragment \u003ccode\u003emeta\u003c/code\u003e tags, simplifying indexing for JavaScript-based webpages.\u003c/p\u003e\n"],["\u003cp\u003eThis change, happening in Q2 2018, leverages Google's improved JavaScript rendering capabilities and is expected to have minimal impact on most websites currently using AJAX crawling.\u003c/p\u003e\n"],["\u003cp\u003eWebmasters are encouraged to verify website ownership in Google Search Console, test pages with Fetch and Render, and ensure proper link usage, metadata, and structured data implementation.\u003c/p\u003e\n"],["\u003cp\u003eContent relying on Flash, Silverlight, or other plugins should be converted to JavaScript or HTML for search indexing.\u003c/p\u003e\n"],["\u003cp\u003eGoogle provides resources like webmaster forums and a JavaScript sites working group for support and further information.\u003c/p\u003e\n"]]],["Google will discontinue the AJAX crawling scheme in the second quarter of 2018, switching to rendering JavaScript pages directly. Websites using `#!` URLs or fragment `meta` tags no longer need to provide rendered versions. Googlebot will render `#!` URLs directly. Webmasters should verify website ownership in Google Search Console, test rendering differences using \"Fetch and Render,\" and ensure correct use of HTML `a` elements, `rel=nofollow`, meta tags, and structured data. Content in Flash or similar must be converted to be indexed.\n"],null,["# Rendering AJAX-crawling pages\n\nMonday, December 04, 2017\n\n\nThe\n[AJAX crawling scheme](https://web.archive.org/web/20151201031357//webmasters/ajax-crawling/docs/learn-more)\nwas introduced as a way of making JavaScript-based webpages accessible to Googlebot, and we've\npreviously announced our\n[plans to turn it down](/search/blog/2015/10/deprecating-our-ajax-crawling-scheme).\nOver time, Google engineers have significantly improved rendering of JavaScript for Googlebot.\nGiven these advances, in the second quarter of 2018, we'll be switching to rendering these pages\non Google's side, rather than on requiring that sites do this themselves. In short, we'll no\nlonger be using the AJAX crawling scheme.\n\n\nAs a reminder, the AJAX crawling scheme accepts pages with either a `#!` in the URL or a\n[fragment `meta` tag](https://web.archive.org/web/20151101113107//webmasters/ajax-crawling/docs/getting-started#3-handle-pages-without-hash-fragments)\non them, and then crawls them with an `?_escaped_fragment_=` in the URL. That escaped\nversion needs to be a fully-rendered and/or equivalent version of the page, created by the website\nitself.\n\n\nWith this change, Googlebot will render the `#!` URL directly, making it unnecessary\nfor the website owner to provide a rendered version of the page. We'll continue to support these\nURLs in our search results.\n\n\nWe expect that most AJAX-crawling websites won't see significant changes with this update.\nWebmasters can double-check their pages as detailed below, and we'll be sending notifications to\nany sites with potential issues.\n\n\nIf your site is currently using either `#!` URLs or the fragment `meta` tag, we\nrecommend:\n\n- Verify ownership of the website in [Google Search Console](https://search.google.com/search-console) to gain access to the tools there, and to allow Google to notify you of any issues that might be found.\n- Test with Search Console's [Fetch and Render](https://support.google.com/webmasters/answer/6066468). Compare the results of the #! URL and the escaped URL to see any differences. Do this for any significantly different part of the website. Check our [developer documentation](/search/docs/crawling-indexing/javascript/fix-search-javascript) for more information on supported APIs, and see our [debugging guide](/search/help/debug) when needed.\n- Use Chrome's [Inspect Element](/web/tools/chrome-devtools/inspect-styles) to confirm that links use [`a` HTML elements](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a) and include a [`rel=nofollow`](/search/docs/advanced/guidelines/qualify-outbound-links) where appropriate (for example, in user-generated content)\n- Use Chrome's [Inspect Element](/web/tools/chrome-devtools/inspect-styles) to check the page's [title](/search/docs/appearance/title-link) and [description `meta` tag](/search/docs/appearance/snippet), any robots `meta` tag, and other meta data. Also check that any [structured data](/search/docs/appearance/structured-data/intro-structured-data) is available on the rendered page.\n- Content in Flash, Silverlight, or other plugin-based technologies needs to be converted to either JavaScript or \"normal\" HTML, if their content should be indexed in search.\n\n\nWe hope that this change makes it a bit easier for your website, and reduces the need to render\npages on your end. Should you have any questions or comments, drop by our\n[webmaster help forums](https://support.google.com/webmasters/go/community),\nor to join our\n[JavaScript sites working group](https://groups.google.com/forum/#!forum/js-sites-wg).\n\n\nPosted by [John Mueller](https://twitter.com/johnmu?rel=john), Google Switzerland"]]