SEO bezmaksas URL: vietne URL un URL pārvaldības paraugprakse

Mūsu vietne tika uzlauzta, un vietnei tika pievienotas saites uz nejaušu saturu. Mēs pilnībā noņēmām uzlauzto vietni un ievietojām jaunu tās vietā. Netika izmantots viss jaunais, ieskaitot attēlus un saturu, nevienu citu vecās vietnes daļu.

Tagad mums ir tā problēma, ka hakeris ir iesniedzis 100 000 saites uz meklēšanas robotiem, un serveri ik pēc 1 sekundes tiek nepārtraukti apmeklēti, mēģinot indeksēt saites, kas nepastāv un nekad nav bijušas vecajās un jauno vietni.

Mēs esam mēģinājuši to apkarot, izmantojot vietnes htaccess failu ar vairākiem dažādu apstākļu gadījumiem un pārrakstīšanas kārtulas, kas paziņo robotiem, ka saturs vairs nav.

Piemērs

RewriteCond %{REQUEST_URI} .*/product/.* RewriteRule ^ - [R=410,L] 

Problēma ir tā, ka daži pieprasījumi tiek cauri un rada 301 un 404 kļūdas.

Tas liek robotiem atkārtoti pārbaudīt pieprasījumu un ziņot, ka mūsu vietnē ir 100 000 sliktu saišu.

Es meklēju risinājumu, kas robotiem atdod 410 kodu visiem pieprasījumiem, izņemot visus avota pieprasījumus, kas faktiski ir mūsu vietnes daļa.

Vietnei ir tikai aptuveni 10 lapas, bet tā ir Joomla CMS, tāpēc ir daudz resursu, kas tiek ielādēti fonā, lai piegādātu lapu.

Mana ideja bija apmeklēt katru vietnes lapu un izmantot pārbaudītās pārlūkprogrammas, lai apkopotu visu lapā veikto resursu pieprasījumu sarakstu.

Jautājums ir, kā es to formulēju nosacījumos un noteikumos par htaccess, lai visi lapu pieprasījumi, ieskaitot maršrutu /, tiktu piegādāti, bet robotu pieprasītās hakeru saites nebūtu?

Mēs arī strādājam pie e-pasta ziņojumu sūtīšanas robotam, lai teiktu, ka hakeris rosina viņu pieprasījumus.

  • 410 statuss būtiski neatšķiras no 404 statusa, ciktāl tas attiecas uz meklētājprogrammu robotprogrammām.Lielākā atšķirība ir tā, ka pirms 404 lappušu indeksēšanas tiks piešķirts 24 labvēlības periods. Nav nepieciešams nodrošināt, ka katrs pieprasījums pēc surogātpasta saņem 410.
  • Alternatīvs risinājums: optimizējiet 404 lapu tā, lai tā daudz mazāk noslogotu jūsu serveri. Tad jūsu serveris varēs tikt galā ar visiem 404 pieprasījumiem, līdz roboti atkāpsies.
  • Ja daži vietrāži URL dod 404, meklētājprogrammas robotam ir jāveic otrais zvans uz manu serveri, lai pārbaudītu, vai ir jāsniedz 410 statuss. Es tiecos uz vienu trāpījumu un daru, jo ir 100 000 surogātpasta URL. Ja es varētu panākt, lai visi surogātpasta URL atgrieztos 410, un meklētājprogrammas robots paātrinātu pieprasījumus, es varu ātrāk novērst problēmu. Vai robotu.txt failā es varu izmantot kaut ko, lai pieprasītu robotu indeksēšanas ātrumu?

Jūs būtībā vēlaties nosūtīt 410, nevis 404.

Iespējams, vienkāršākā metode (ja esat pazīstams ar Joomla) ir ignorēt error.php failu veidnē un manuāli iestatiet statusu 410, kad 404 jau ir noteikts. Piemēram, jūsu augšdaļā error.php fails, kaut kas līdzīgs šim:

if ($this->error->getCode() == '404'){ header('HTTP/1.0 410 Gone'); } 

Alternatīvi, tā kā jums ir tikai apmēram 10 lappuses, to varat izdarīt .htaccess izveidojot lapas URL balto sarakstu un aktivizējot 410, ja pieprasītais URL neatbilst jūsu baltajam sarakstam un neeksistē kā fizisks fails. Tas arī ļauj izvairīties no tā, ka Joomla palēnina pieprasījumu (plusi un mīnusi - skatīt beigas).

Piemēram:

# Whitelist of page URLs # NB: Last condition must not have an OR flag RewriteCond %{REQUEST_URI} =/second-page [OR] RewriteCond %{REQUEST_URI} =/third-page [OR] RewriteCond %{REQUEST_URI} =/fourth-page [OR] RewriteCond %{REQUEST_URI} =/fifth-page [OR] RewriteCond %{REQUEST_URI} ^/admin/ RewriteRule . - [E=PAGE_URL:yes] # Send 410 Gone RewriteCond %{REQUEST_URI} !\.(css|js|png|jpg|gif|svg|pdf)$ [NC] RewriteCond %{ENV:PAGE_URL} !yes RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule !^(index\.php)?$ - [G] 

Tas pieņem mājas lapu (ti. /) ir derīgs lapas URL. The G (gone) karogs ir stenogrāfisks R=410 un L karogs nav nepieciešams (tas ir netieši norādīts).

Pirmais RewriteCond direktīva izslēdz vietrāžus URL, kas izskatās kā statiski resursi (apzīmēti ar faila paplašinājumu), ja tie nepastāv, apkalpot 410, - tiem vajadzētu saņemt noklusējuma 404. Tādējādi tiek pieņemts, ka surogātpasta vietrāži URL nav paredzēti šāda veida statiskajiem resursiem. Ja saņemat surogātpastu līdzīgus pieprasījumus par blēņām .css faili, piemēram, pēc tam noņemiet šo paplašinājumu no RewriteCond vai pilnībā noņemt nosacījumu, lai kalpotu 410 visiem šiem trūkstošajiem resursiem.

The = prefikss uz CondPattern piem. =/second-page, padara to par precīzas atbilstības virknes salīdzinājumu, nevis parastu izteiksmi, tāpēc nav nepieciešams izvairīties no regex meta rakstzīmēm utt.

Tomēr tas zaudē jūsu jauko lietotājam draudzīgo "Joomla 404 lapu", tāpēc jums, iespējams, vajadzēs to izveidot.


ATJAUNINĀT:

Dažiem surogātpasta vietrāžiem ir šāda veida struktūra /?anything=

Ja vēlaties bloķēt jebkuru URL, kurā ir vaicājuma virkne, jums ir nepieciešams nosacījums, kas pārbauda QUERY_STRING servera mainīgais. Mēģiniet pievienot šo:

# Block any URL that contains a query string on unknown pages RewriteCond %{QUERY_STRING} . RewriteCond %{ENV:PAGE_URL} !yes RewriteRule ^ - [G] 

Viena punkta regex (kas atbilst vienai rakstzīmei) vienkārši pārbauda, ​​vai ir vaicājuma virkne.

  • 1 Jautājumā viņi saka, ka viņiem ir apmēram 10 lapas, bet papildu css, js un attēli. Viņi jautāja, kā viņi varētu iegūt visu lapu un resursu sarakstu, kurus iekļaut .htaccess.
  • 1 Jums nav jāuzskaita visi statiskie resursi, kas tiek piesaistīti fiziskiem failiem, jo ​​jūs varat vienkārši pārbaudīt failu sistēmu. Bet es arī pieņemu, ka šie "surogātpasta" URL nav domāti .css, .js faili utt., tāpēc šie URL vienkārši tiek ignorēti (ti, tiek apstrādāti normāli).
  • Jā, surogātpasta vietrāži URL ir vērsti arī uz virkni failu paplašinājumu. Kad es izmēģināju 410 visai vietnei ar vienas lapas izņēmumu, kā to ieteica MrWhite, lapas faila resursos žurnālos bija norādīts 410, un resurss lapā nebija. Sākumlapa / ir derīgs lapas URL. Es varu iegūt visus avota ceļus un izveidot izņēmumus, izmantojot izklājlapu savienojumus, pamatojoties uz jūsu piemēru. Es neesmu pārliecināts par sākumlapu / izņēmumu. Jebkuram citam, izņemot / vai izņēmumiem, jānorāda 410. Piemērs: example.com/anythingbutexceptions jānorāda 410.
  • Lai gan es esmu ēka resursiem URL kā es varu tikt galā ar šāda veida saitēm: dati: image / svg + xml, base64, PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCAzMiAzMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTEuNDMzIDE1Ljk5MkwyMi42OSA1LjcxMmMuMzkzLS4zOS4zOTMtMS4wMyAwLTEuNDItLjM5My0uMzktMS4wMy0uMzktMS40MjMgMGwtMTEuOTggMTAuOTRjLS4yMS4yMS0uMy40OS0uMjg1Ljc2LS4wMTUuMjguMDc1LjU2LjI4NC43N2wxMS45OCAxMC45NGMuMzkzLjM5IDEuMDMuMzkgMS40MjQgMCAuMzkzLS40LjM5My0xLjAzIDAtMS40MmwtMTEuMjU3LTEwLjI5IiBmaWxsPSIjZmZmZmZmIiBvcGFjaXR5PSIwLjgiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg ==
  • Esmu atjauninājis savu atbildi ... iepriekšējais kods, iespējams, būtu bloķējis sākumlapu! Jums tiešām nevajadzētu uzskaitīt visus savus statiskos resursus, ja jūs to iesakāt? To nebūtu iespējams pārvaldīt citur, izņemot mazākās vietnēs. Statiskie resursi ir fiziski faili, tāpēc jums jāpārbauda tikai tas, vai fails pastāv. (Ja vien jūs nevēlaties apkalpot arī 410 atlasītajiem resursiem, kuri pastāv ?!) Datu URI ir iestrādāts pašā dokumentā - tas nav atsevišķs resurss.

strādāja par jums: Charles Robertson | Vēlies ar mums sazināties?