Mencegah robot merayapi bagian tertentu dari suatu halaman

28

Sebagai seorang webmaster yang bertanggung jawab atas situs kecil yang memiliki forum, saya secara teratur menerima keluhan dari pengguna bahwa mesin pencari internal dan pencarian eksternal (seperti ketika menggunakan Google) benar-benar tercemar oleh tanda tangan pengguna saya (mereka menggunakan lama tanda tangan dan itu adalah bagian dari pengalaman forum karena tanda tangan masuk akal di forum saya).

Jadi pada dasarnya saya melihat dua opsi seperti sekarang:

  1. Rendering tanda tangan sebagai gambar dan ketika pengguna mengklik "gambar tanda tangan" itu akan dibawa ke halaman yang berisi tanda tangan asli (dengan tautan di tanda tangan dll.) Dan halaman itu ditetapkan sebagai tidak dapat dijelajahi dengan pencarian spider mesin). Ini akan memakan beberapa bandwidth dan perlu beberapa pekerjaan (karena saya membutuhkan renderer HTML yang menghasilkan gambar dll.) Tapi jelas itu akan menyelesaikan masalah (ada gotcha kecil di mana tanda tangan tidak akan menghormati skema font / warna dari pengguna tetapi pengguna saya sangat kreatif dengan tanda tangan mereka, menggunakan font khusus / warna / ukuran dll. jadi tidak banyak masalah).

  2. Menandai setiap bagian dari halaman web yang berisi tanda tangan sebagai tidak dapat dirayapi.

Namun saya tidak yakin tentang nanti: apakah ini sesuatu yang bisa dilakukan? Bisakah Anda menandai bagian tertentu dari suatu halaman web sebagai tidak dapat dirayapi?

WebbyTheWebbor
sumber

Jawaban:

8

Ini jawaban yang sama dengan yang saya berikan pada tag noindex untuk google di Stack Overflow:

Anda dapat mencegah Google melihat bagian halaman dengan meletakkan bagian-bagian itu di iframe yang diblokir oleh robots.txt.

robots.txt

Disallow: /iframes/

index.html

This text is crawlable, but now you'll see 
text that search engines can't see:
<iframe src="/iframes/hidden.html" width="100%" height=300 scrolling=no>

/iframes/hidden.html

Search engines cannot see this text.

Alih-alih menggunakan menggunakan iframe, Anda bisa memuat konten file tersembunyi menggunakan AJAX. Berikut adalah contoh yang menggunakan jquery ajax untuk melakukannya:

his text is crawlable, but now you'll see 
text that search engines can't see:
<div id="hidden"></div>
<script>
    $.get(
        "/iframes/hidden.html",
        function(data){$('#hidden').html(data)},
    );
</script>
Stephen Ostermiller
sumber
Apakah menambahkan / menyuntikkan kontrol menggunakan AJAX akan membantu untuk melarang dan mencegah merangkak yang sama?
Pranav Bilurkar
Selama lokasi pengambilan AJAX diblokir oleh robots.txt.
Stephen Ostermiller
Tolong periksa webmasters.stackexchange.com/questions/108169/… ini dan sarankan jika ada.
Pranav Bilurkar
Selama lokasi yang diambil AJAX diblokir oleh robots.txt - Harap uraikan ini.
Pranav Bilurkar
2
Google menghukum mereka yang menyembunyikan javascript mereka agar tidak dijelajahi, untuk mencegah penyalahgunaan. Apakah hal yang sama berlaku untuk iframe?
Jonathan
7

Solusi lain adalah dengan membungkus sig dalam rentang atau div dengan style yang diatur ke display:nonedan kemudian menggunakan Javascript untuk mengambilnya sehingga teks ditampilkan untuk browser dengan Javascript aktif. Mesin pencari tahu itu tidak akan ditampilkan jadi jangan indeks itu.

Ini sedikit HTML, CSS dan javascript harus melakukannya:

HTML:

<span class="sig">signature goes here</span>

CSS:

.sig {
display:none;
}

javascript:

<script type="text/javascript"> 
$(document).ready(function()
  {
      $(".sig").show();
  }
</script>

Anda harus menyertakan perpustakaan jquery .

paulmorriss
sumber
4
+1 dan saya memikirkannya tetapi bukankah itu dianggap sebagai bentuk "penyelubungan" oleh berbagai laba-laba?
WebbyTheWebbor
3
Bukan oleh Google: theseonewsblog.com/3383/google-hidden-text
paulmorriss
1
Saya pikir itu cukup rapi :-)
paulmorriss
Ini, dalam definisi yang paling ketat, dapat dianggap sebagai penyelubungan. Namun dia bisa mencetak semua tanda tangan dengan javascript menggunakan document.write ("") ;. Google tidak mengindeks apa pun dalam javascript. support.google.com/customsearch/bin/…
Athoxx
Saya percaya Google dapat mengindeks paragraf tersebut, bahkan jika mereka disembunyikan menggunakan CSS. Opsi teraman adalah tidak menyertakan teks dalam HTML sama sekali. (Kita dapat menggunakan JavaScript untuk menyuntikkan teks saat runtime.)
wrygiel
3

Saya memiliki masalah yang sama, saya menyelesaikannya dengan css tetapi dapat dilakukan dengan javascript dan jquery juga.

1 - Saya membuat kelas yang akan saya panggil " disallowed-for-crawlers" dan menempatkan kelas itu dalam segala hal yang saya tidak ingin bot Google lihat, atau letakkan di dalam rentang dengan kelas itu.

2 - Di CSS utama halaman saya akan memiliki sesuatu seperti

.disallowed-for-crawlers {
    display:none;
}

3- Buat file CSS yang disebut disallow.css dan tambahkan itu ke robots.txt agar tidak boleh dirayapi, jadi crawler tidak akan mengakses file itu, tetapi tambahkan itu sebagai referensi ke halaman Anda setelah css utama.

4- Dalam disallow.csssaya menempatkan kode:

.disallowed-for-crawlers {
    display:block !important;
}

Anda dapat bermain dengan javascript atau css. Saya hanya mengambil keuntungan dari kelas larang dan css. :) semoga membantu seseorang.

Rolando Retana
sumber
Saya tidak yakin ini berfungsi karena perayap tidak mengakses file .css (apakah ini suatu hal? Sejak kapan perayap mengakses dan merayapi file css tertentu?) Dan bukan hanya karena ditampilkan: tidak ada dan perayap yang memahaminya tidak akan ditampilkan jadi mereka tidak mengindeksnya. Bahkan jika ini masalahnya, apa yang Anda lakukan untuk benar-benar menampilkan konten kepada pengguna manusia?
Σπύρος Γούλας
Konten ditampilkan ketika langkah 4 dimuat untuk pengguna manusia karena mereka diizinkan untuk melihat file itu (disallow.css). Dan tentang robot yang memuat CSS itulah yang dilakukan oleh mesin pencari terhormat saat ini, itulah cara mereka menentukan kapan sebuah situs web ramah seluler atau tidak, perayap yang tidak menghormatinya tidak layak untuk dikhawatirkan, mesin pencari utama membaca css dan javascript untuk dijelajahi halaman, mereka sudah melakukannya selama ... hampir 6 tahun sekarang? mungkin lebih.
Rolando Retana
Bisakah Anda memberikan sumber yang mendukung klaim itu? Silakan lihat webmasters.stackexchange.com/questions/71546/… dan yoast.com/dont-block-css-and-js-files dan yang paling penting di sini webmasters.googleblog.com/2014/10/… mana gambar yang Anda gambarkan digambarkan sebagai praktik buruk.
Σπύρος Γούλας
Ini adalah praktik yang buruk jika saya ingin Google melihat situs web saya secara normal dan saya memblokir semua CSS, dan merupakan praktik yang buruk karena mereka menafsirkan CSS, tetapi dalam kasus khusus ini saya memblokir satu file tertentu, tidak semua css, OP bertanya tentang mencegah Google membaca bagian halaman. tapi saya tidak ingin Google merangkak bagian-bagian itu jadi saya memblokir satu CSS tunggal (tidak semuanya, hanya satu). Dan untuk mendukung klaim apa yang Anda katakan? salah satu yang dibaca crawler JS dan CSS? semudah pergi ke Alat Webmaster Google Anda dan lihat "Ambil sebagai robot" Anda akan melihat di sana bagaimana mereka membaca css dan js.
Rolando Retana
Juga untuk menambahkan, dalam kasus khusus saya bukan bahwa saya ingin melakukan sesuatu yang teduh dengan Google Crawler, saya hanya tidak ingin google membaca bagian informasi yang mungkin tampak berulang di semua halaman. Seperti nomor telepon, alamat, produk terkait atau informasi yang tidak relevan untuk dijelajahi oleh Google.
Rolando Retana
2

Salah satu cara untuk melakukan ini adalah dengan menggunakan gambar teks daripada teks biasa.

Ada kemungkinan bahwa Google pada akhirnya akan cukup pintar untuk membaca teks dari gambar, jadi itu mungkin tidak sepenuhnya bukti di masa depan, tetapi harus bekerja dengan baik setidaknya untuk sementara waktu dari sekarang.

Ada banyak kelemahan dari pendekatan ini. Jika seseorang tunanetra, itu buruk. Jika Anda ingin konten Anda beradaptasi dengan perangkat seluler dibandingkan komputer desktop, itu buruk. (dan seterusnya)

Tetapi ini adalah metode yang saat ini (agak) berfungsi.

James Foster
sumber
seberapa baik ini bekerja jika Anda menggunakan alt & title tage dengan tepat?
Jayen
Belum mencoba, tetapi sepertinya Google akan merayapi itu. Ini adalah batasan utama dari pendekatan ini.
James Foster
1

Ini mudah.

Sebelum Anda melayani halaman Anda, Anda perlu tahu apakah itu untuk bot, komputer atau telepon. Anda kemudian perlu mengatur konten yang sesuai. Ini adalah praktik standar di zaman sekarang ini dan fungsionalitas inti beberapa CMS.

Ada banyak solusi pada SE untuk melakukan pengalihan berdasarkan USER AGEN yang dapat dimasukkan ke dalam htaccess Anda. Jika ini sesuai dengan perangkat lunak forum Anda, maka Anda dapat menjalankan kode yang berbeda dari DB yang sama untuk memberikan apa yang dibutuhkan Google tanpa sekam dan hiasan.

Atau Anda dapat meletakkan sedikit baris dalam kode PHP Anda yang melakukan 'jika USER AGENT == Googlebot maka jangan tampilkan tanda tangan'.

Jika Anda benar-benar tidak dapat melakukannya maka Anda bisa mendapatkan mod_proxy untuk melayani bot dan menggunakannya untuk menghapus apa pun yang dihasilkan kode php Anda yang tidak perlu dilihat oleh bot.

Secara teknis Google tidak menyetujui mesin pencari mereka ditampilkan halaman yang berbeda dengan apa yang dilihat pengunjung situs normal, namun, sampai saat ini, mereka belum mengambil BBC dan yang lain yang menyediakan konten khusus browser / IP / pengunjung dari hasil mesin pencari mereka . Mereka juga memiliki sarana terbatas untuk melihat apakah bot mereka telah 'ditipu'.

Solusi alternatif menyembunyikan konten dengan CSS agar dapat diaktifkan kembali oleh sebuah skrip juga sedikit area abu-abu. Menurut pedoman Alat Webmaster mereka sendiri 20/6/11 ini bukan ide yang baik:

http://www.google.com/support/webmasters/bin/answer.py?answer=66353

Itu mungkin bukan tablet yang dilempar batu, tetapi itu up to date dan oleh Google.

Trik sembunyikan konten tidak akan berfungsi dengan minoritas orang yang tidak memiliki javascript, ini mungkin bukan masalah besar, namun, menunggu dokumen dimuat dan kemudian menunjukkan tanda tangan tidak akan menjadi pengalaman menonton yang memuaskan karena Anda akan pikir halaman telah dimuat, maka itu akan melompat ketika tanda tangan tersembunyi muncul untuk kemudian mendorong konten ke bawah halaman. Jenis ini memuat halaman dapat menjengkelkan jika Anda memiliki net-top low-end tetapi mungkin tidak terlihat jika Anda memiliki mesin pengembang cepat pada koneksi internet cepat.

ʍǝɥʇɐɯ
sumber
6
@ ʍǝɥʇɐɯ: menyajikan konten yang berbeda tergantung pada siapa yang mengakses halaman agak disukai dan dapat menghukum Anda di mesin pencari sejauh yang saya mengerti. Saya lebih suka solusi JavaScript paulmorris.
WebbyTheWebbor
@ ʍǝɥʇɐɯ: erf, jika menyajikan konten yang dipersonalisasi adalah nama permainan, begitu juga JavaScript. Terakhir saya memeriksa Web secara keseluruhan tidak benar-benar berfungsi dengan baik lagi tanpa menginstal JavaScript (GMail, FaceBook, Google Documents, stack overflow, Google+ - ya saya sudah mendapatkannya;) - dll). Saya tidak melihat perlu mengkritik solusi paulmorris berdasarkan premis palsu bahwa JavaScript tidak tersedia akan menjadi masalah.
WebbyTheWebbor
@ ʍǝɥʇɐɯ: Anda mungkin menyukai ini dari Matt Cutts (yang bertanggung jawab atas SEO di Google) pada subjek yang sama: theseonewsblog.com/3383/google-hidden-text Itu adalah komentar yang sangat baik oleh paulmorris yang diposting dalam komentar atas jawaban baiknya . Saya minta maaf tetapi menyebut JavaScript "konyol" di forum seperti itu dekat dengan trolling.
WebbyTheWebbor
... dan kemudian kami mendapatkan pertanyaan ini: webmasters.stackexchange.com/questions/16398/… - 'isian kata kunci' konyol. Maaf soal itu.
ʍǝɥʇɐɯ
Saya percaya ini berada di bawah "cloaking" dan karenanya itu bukan praktik yang baik.
Σπύρος Γούλας
0

Tidak, tidak ada cara untuk mencegah robot merayapi bagian halaman. Seluruh halaman atau tidak sama sekali.

Cuplikan dalam hasil pencarian Google biasanya diambil dari deskripsi meta pada halaman. Jadi, Anda dapat membuat Google menampilkan bagian tertentu dari halaman dengan meletakkannya di tag deskripsi meta. Dengan konten yang dibuat pengguna, sulit untuk mendapatkan cuplikan yang bagus, tetapi mengambil kiriman pertama dari utas mungkin akan berhasil.

Satu-satunya cara lain yang bisa saya pikirkan adalah menggunakan Javascript. Sesuatu seperti paulmorriss disarankan mungkin berfungsi, tapi saya pikir mesin pencari masih akan mengindeks konten jika ada dalam HTML. Anda dapat menghapusnya dari HTML, menyimpannya dalam string Javascript, lalu menambahkannya kembali pada pemuatan halaman. Ini jadi agak rumit.

Akhirnya, satu hal yang perlu diingat: jika Google menunjukkan tanda tangan pengguna di snippet mereka, itu telah memutuskan bahwa itu adalah bagian yang paling relevan dengan permintaan pengguna.

DisgruntledGoat
sumber
1
masalahnya bukan pada Google yang menunjukkan sig pengguna di snippet mereka karena halaman-halaman khusus ini mendapatkan rangking tinggi di Google. Masalahnya di sini adalah tepatnya bahwa Google mungkin berpikir sigs relevan ketika sebenarnya tidak: maksud saya, itulah pertanyaan saya sebenarnya.
WebbyTheWebbor
@ Webby, saya tidak mengerti, mengapa Anda tidak ingin peringkat halaman Anda tinggi? Apakah Anda memiliki beberapa halaman contoh dan kueri sehingga kami dapat melihat apa yang Anda bicarakan? Dan jika Google menunjukkan sig dalam hasil pencarian, maka adalah relevan untuk itu permintaan pencarian, bahkan jika itu tidak relevan dengan halaman itu sendiri.
DisgruntledGoat
1
Saya tidak bisa memberikan contoh tapi saya tidak ingin situs saya / forum untuk peringkat yang sangat dan ia melakukannya dengan sangat baik. Masalahnya adalah bahwa di antara hasil pencarian (yang semuanya sebagian besar untuk situs / forum saya karena itu pada dasarnya adalah situs pada subjek), apa yang seharusnya menjadi halaman entri nyata dibanjiri di antara tanda tangan. Maksud saya, saya benar - benar ingin melakukan apa yang saya tanyakan dalam pertanyaan. Dan gambar atau JavaScript akan seperti itu.
WebbyTheWebbor
@Webby, respons Anda sedikit membingungkan tetapi Anda tampaknya menyiratkan bahwa tanda tangan pengguna Anda adalah semua halaman terpisah (URL) dan dengan demikian muncul sebagai hasil terpisah dalam SERPs. Dalam hal ini Anda dapat memblokir halaman tersebut melalui robots.txt. Kalau tidak, coba solusi deskripsi meta yang saya posting di atas, karena itu hampir pasti akan mengurangi masalah.
DisgruntledGoat
0

Anda bisa meletakkan halaman dalam PHP jika dengan "lain" yang mengarah ke captcha yang memberikan kunci untuk bagian if.

Saya tidak terlalu peduli karena jika kredensial pengguna tidak cocok pada halaman saya, mereka mendapatkan halaman kosong atau dikirim ke halaman login.

<?php
session_start();

if(empty($_SESSION['captcha']) or $_SESSION['captcha'] != $key){
    header("Location: captcha.php");
}

if(!empty($_SESSION['captcha']) and $_SESSION['captcha'] == $key){

"the page"

}
?>

$key harus berupa hash hari ini atau sesuatu yang berubah sehingga tidak cukup untuk menambahkan nilai ke sesi.

Tulis di komentar jika Anda ingin saya menambahkan contoh captcha karena saya tidak memilikinya sekarang.

Alfons Marklén
sumber
Jawaban ini mengasumsikan situs web menggunakan atau pengembang tahu PHP yang mungkin tidak benar. Selain itu, membuat konten menjadi sulit bagi pengguna yang bukan hal yang baik.
John Conde
Saya dapat membeli bahwa tidak semua orang tahu PHP tetapi captcha bisa menjadi "apa warna rumput", bahkan orang buta buta tahu itu.
Alfons Marklén
-3

Rupanya, <! - googleoff: all -> dan <! - googleon: all -> lakukan apa yang Anda inginkan.

Baca selengkapnya https://www.google.com/support/enterprise/static/gsa/docs/admin/70/gsa_doc_set/admin_crawl/preparing.html#1076243

https://perishablepress.com/tell-google-to-not-index-certain-parts-of-your-page/

Luke Madhanga
sumber
4
Tidak. Googleoff dan Googleon hanya didukung oleh Google Search Appliance. Googlebot mengabaikannya untuk pencarian web. Referensi: Dapatkah Anda menggunakan komentar googleon dan googleoff untuk mencegah Googlebot mengindeks bagian halaman? Anda tertaut ke dokumentasi Alat Pencarian Google dan komentar pada artikel yang Anda tautkan juga mengatakan bahwa itu tidak berfungsi untuk Googlebot.
Stephen Ostermiller
@StephenOstermiller oh benar! Sialan
Luke Madhanga