google indexing text retrieved by ajax or javascript after page load - javascript

a couple of google questions:
1 - is there ANY chance that google will "see" text retrieved using ajax?
the user selects from a chain of select boxes and some text from the Db is displayed.
2 - if i change the page title using javascript, outside the HEAD area, will google index the modified title?
sorry if these are trivial questions and thanx for any reply
have a nice day :-)

What Google sees is what you see when you disable javascript on your browser. So the answer to both your questions is no.
The correct way to have all the data of your site indexed is to degrade gracefully inside <noscript> tags. For example, you could offer an interface to browse all the content of your database, using list and sublists of requests that point to proper result pages, that are well integrated in your site.
Warning note: your content must really be a noscript version of your site. If you create a special site, it becomes cloaking, which is forbidden.
Update: Since 2014, Google seems to support everything you can think of (including javascript and ajax).

Try using seo-browser.com or lynx browser to see how google see your site.

Also see this answer on Googlebot doesn't see jquery generated content and/or this document by Google, on ways you can have your AJAX content spidered.

Related

Alternative to Ajax content loading for a One Page Website for proper meta tags

I meanwhile spent over two months to observe the SERP of my website Arda Maps. It is still the fact that Google does not list all of the subpages and the incorrect meta tags.
I got a tip to use the Dublin Core. But Google themself say "as a last resort". For me this means that they do not completely ignore the DC, do they? But yeah DC does not work for me.
I searched a lot but I not even found a single One Page Website with linked subpages which have different meta tags in the SERP. And if there are some these are usual PHP scripts or they load content via Ajax.
So my question is, is there anything out there that makes it possible to get indexed in a proper way without using Ajax. I mean loading subpages via Ajax is fine... but there you have to mirror so much in this case. So do you know any alternative to Ajax for loading proper meta tags?
I searched a lot around, but it does not seem that there is a working solution without PHP or Node.js. That's really bad but as Single-Page are not frequently used in the web, I think that's ok. So Single-Pages have some huge disadvatanges in that term.

Google and loading content in Javascript

Just a quick question for you all...
I've got a jsFiddle here and just wondering if we load content this way from an external api on load of the page will Google be able to see this information?
Here's the code of the fiddle...
<p>Property name <span id="property_name"></span></p>
function propInfo(propertyName) {
document.getElementById("property_name").innerHTML = propertyName;
}
Accessing this api is out of my hands - I'm told the only way to do it currently is via Javascript.
We obviously want our pages to be appearing correctly in Google so any help with this would be great!
You need to have a look at these guidelines to make sure that Google can access whatever content you load via AJAX - https://developers.google.com/webmasters/ajax-crawling/
As long as you're compliant with those, you shouldn't have a problem.
The only people who can definitively answer this for you are Google.
Matt Cutts did confirm that Google's crawler does run some content-generating JavaScript and index the result, but I don't think the details of the limits of that have ever been publicly disclosed.

Does Changing Content Dynamically With Javascript Affect SEO for Google? [duplicate]

i wonder if content loaded dynamically by AJAX affect SEO/ability for search engines to index the page?
i am thinking of doing a constantly loading page, something like the Tumblr dashboard where content is automatically loaded as the user scrolls down.
A year later...
A while back Google came out with specifications for how to create XHR content that may be indexed by search engines. It involves pairing content in your asynchronous requests with synchronous requests that can be followed by the crawler.
http://code.google.com/web/ajaxcrawling/
No idea whether other search giants support this spec, or whether Google even does. If anybody has any knowledge about the practicality of this method this I'd love to hear about their experience..
Edit: As of today, October 14, 2015, Google has deprecated their AJAX crawling scheme:
In 2009, we made a proposal to make AJAX pages crawlable. Back then, our systems were not able to render and understand pages that use JavaScript to present content to users. ... Times have changed. Today, as long as you're not blocking Googlebot from crawling your JavaScript or CSS files, we are generally able to render and understand your web pages like modern browsers.
H/T: #mark-bembnowski
Five years later...
Latest update on SEO AJAX:
As of October 14, 2015
Google now is able to crawl and parse AJAX loaded content.
SPA or other AJAX rendered page no longer needed to prepare two versions of websites for SEO.
Short answer: It depends.
Here's why - say you have some content that you want to have indexed - in that case loading it with ajax will ensure that it won't. Therefore that content should be loaded normally.
On the other hand, say you have some content that you wish to index, but for one reason or another you do not wish to show it (I know this is not recommended and is not very nice to the end user anyway, but there are valid use cases), you can load this content normally, and then hide or even replace it using javascript.
As for your case where you have "constantly loading" content - you can make sure it's indexed by providing links to the search engines/non-js enabled user agents. For example you can have some twitter-like content and at the end of it a more button that links to content starting from the last item that you displayed. You can hide the button using javascript so that normal users never know it's there, but the crawlers will index that content (by clicking the link) anyway.
If you have some content loaded by an Ajax request, then, it is only loaded by user-agents that run Javascript code.
Search-engine robots generally don't support Javascript (or not well at all).
So chances are that your content that's loaded by an Ajax request will not be seen by search engines crawlers -- which means it will not be indexed ; which is not quite good for your website.
Crawlers don't run JavaScript, so no, your content will not be visible to them. You must provide an alternative method of reaching that content if you want it to be indexed.
You should stick to what's called "graceful degradation" and "progressive enhancement". Basically this means that your website should function and content should be reachable when you start to disable some technologies.
Build your website with a classic navigation, and then "ajaxify" it. This way, not only is it indexed correctly by search engines, it's also friendly for users that browse it with mobile devices / with JS disabled / etc.
Two years later, Bing and Yahoo search engines also now support Google's Ajax Crawling Standard. Information over the standard can be found here: https://developers.google.com/webmasters/ajax-crawling/docs/getting-started.
The accepted answer on this question is no longer accurate. Since this post still shows in search results, I'll summarize the latest facts:
Sometime in 2009, Google released their AJAX crawling proposal. Other search engines added support for this scheme shortly thereafter. As of today, October 14, 2015, Google has deprecated their AJAX crawling scheme:
In 2009, we made a proposal to make AJAX pages crawlable. Back then, our systems were not able to render and understand pages that use JavaScript to present content to users. ... Times have changed. Today, as long as you're not blocking Googlebot from crawling your JavaScript or CSS files, we are generally able to render and understand your web pages like modern browsers.

Another "how to change the URL without leaving the webpage"

I am creating a website which uses jquery scrolling as the method of navigation that never leaves a single html page.
I have noticed that some websites are able to change the URL and have looked at posts/answers (such as How does GitHub change the URL without reloading a page? and Attaching hashtag to URL with javascript) which refer to these changes being either push states, AJAX scripts or history API's (all of which I am not too savvy in).
Currently I am looking into which method is best for my website and have been looking at some examples which I like.
My question is why do the websites below use /#/ in the path for the changing URL. The only reason I ask is because I am seeing this more and more often with jquery heavy websites.
http://na.square-enix.com/ffxiii-2/
http://www.airwalk.com
If anyone could simply shed some light on what these guys are using to do this, it would be much appreciated so I can possibly create my own script.
My question is why do the websites below use /#/ in the path for the changing URL
If we discount the possibility of ignorance to the alternatives then: Because they are willing to accept the horrible drawbacks in exchange for making it work in Internet Explorer (which doesn't support the history API).
Github take the sensible approach of using the history API if it is available and falling back to the server if it isn't, rather then generating links that will break without JavaScript.
http://probablyinteractive.com/url-hunter
This has a nice example on how to change the url with javascript.
I've not tried it myself, but read many reviews/opinions about History.js
It's supposed to have the "# in the path" option as you said (for older -- incompatible -- browsers) and the facebook-like direct changing of URL. Plus, when you hit the back button, you will get to the previous AJAX-loaded page with no problem.
I've implemented such a feature (AJAX tabs with URL changing), but if you will have other javascript on the pages that you want to load dynamically, I wouldn't recommend you using AJAX-loaded pages, because when you load content with AJAX, the JavaScript inside the content won't be executed.
So I vote for either HistoryJS or making your own module.
Well, they're using the anchor "#" because they need to differentiate between multipla bookmarkable/browser navigatable places in the site, while still having everything on the same page. By adding browser history events of the genre /mySamePage.html#page1, /mySamePage.html#page2 when the user does something that Ajax loads some content in the current html page you have the advantage of (well, obviouslly) still staying on the current page, but at the same time the user can bookmark that specific content, and pressiing back/forward on his browser will differentiate between different Ajax loaded content.
It's not bad as a trick, only issue is with SEO optimisation. Google has a nice page explaining this http://googlewebmastercentral.blogspot.com/2009/10/proposal-for-making-ajax-crawlable.html

Is it possible to edit the CSS of an existing webpage?

Specifically, what I'm trying to do is create a mobile version of a site I don't have access to. The best approach I can think of is this:
My site executes their php search file and then displays the results page, but first modifies its DOM to use my CSS. Is it technically possible?
Your site can definitely access web content from another site, filter/transform it however it wants, and then forward the result wherever it wants. It is not a simple problem, potentially, as so much web content is dynamic. For example, if the source site has content that's formatted with CSS that's dynamically built by JavaScript, it'd be fairly difficult to come up with an automated transformation.
Whether the original site's owners will be happy about your site doing that is a separate issue.

Categories

Resources