2015-08-20 23 views
-1

此問題與this one類似。PHP生成的圖像不可被Google抓取?

我使用以下PHP與lazyload.js結合生成網頁中的圖像。這個PHP的目的是自動/動態加載給定目錄中的圖像,並避免直接的超鏈接。當我嘗試使用各種站點地圖生成器(包括在線和下載)時,他們只能看到loader.gif,並沒有看到正在加載的真實圖像。我知道我可以手動create an image sitemap .xml並上傳到Google Search Console,但我想避免這種情況,因爲我擁有大量圖片,其中很多圖片可能會定期更改。

這樣的PHP是不可抓取的嗎?是否有另一種更優雅的解決方案來動態生成圖像,這將與抓取工具很好地發揮作用?提前致謝。

<?php 
      $dirname = "images/directoryname/"; 
      $images = scandir($dirname); 
      $ignore = Array(".", ".."); 
      foreach($images as $curimg){ 
       if(!in_array($curimg, $ignore)) { 
        echo "<img class=\"img-responsive lazy\" src=\"images/loader.gif\" data-original='".$dirname.$curimg."' alt='Alt text goes here' /><br>"; 
       } 
      }     
      ?> 
+0

sitemap生成器將從您的頁面源獲取所有圖像,而不是像瀏覽器那樣解析JavaScript以獲取可能被加載的圖像列表。另一方面,谷歌通常可以解析JavaScript,但不確定自己是否可以獲取像圖像這樣的東西。如果您看到Googlebot,則可以在網站生成器蜘蛛網站甚至將其禁用時關閉延遲加載幾分鐘。 –

+0

@JonathanKuhn有道理。所以問題不是PHP,它是JavaScript相關的? – chickenorbeef

+0

是的。生成站點地圖的網站抓取工具將只抓取頁面的源代碼並查找所有的

回答

0

站點地圖生成器會從你的頁面的源獲取的所有圖像,而不是像解析瀏覽器的JavaScript來獲取可以加載圖像列表。另一方面,谷歌通常可以解析JavaScript,但不確定自己是否可以獲取像圖像這樣的東西。如果您看到Googlebot,則可以在網站生成器蜘蛛網站甚至將其禁用時關閉延遲加載幾分鐘。

生成站點地圖的網站抓取工具只會拉出頁面的源代碼並尋找所有<img標記並將其值提升爲src。不運行JavaScript來獲取通過JavaScript加載的所有內容。