Oferta SiteGround Black Friday

Quién crea masivamente carritos abandonados falsos y cómo evitarlo

Hace poco me sorprendió una lectora en los comentarios de la entrada sobre cómo evitar el rastreo del botón de «Añadir al carrito» de WooCommerce, indicando que estaba detectando ¡cientos de carritos abandonados a la hora! 

Y, sinceramente, era la primera vez que me encontraba con este problema, pero investigando un poco comprobé rápidamente que es algo que cada vez está más extendido en todo tipo de tiendas online, da igual si están creadas con WooCommerce, PrestaShop, Shopify, BigCommerce o lo que sea, es un mal que puede afectar a cualquier tienda online.

La realidad es que cada vez hay más carritos de compra falsos, o carritos fantasma, en las tiendas online, generados por bots automatizados.

El caso del bot John Smith

De hecho es famoso el caso del bot llamado «John Smith«, algo así como el Juan García anglosajón, que está llenando de carritos abandonados falsos montones de tiendas online en todo el mundo.

Este caso fue algo especial porque en realidad se confirmó que es el propio Google quien genera este bot y los consiguientes carritos abandonados falsos, para obtener estadísticas y cosas así malvadas de esas que hace la gran G.

En concreto, para realizar estas prácticas, Google se basa en la potestad que le concedemos al usar sus servicios de …

Si el contenido que envía contiene URL o contenido similar, otorga a Google el derecho de acceder, indexar, almacenar en caché o rastrear las URL y el contenido disponible a través de dichas URL, o cualquier parte de los mismos. Por ejemplo, Google puede utilizar un programa de software automatizado para recuperar y analizar los sitios web asociados con dichas URL

Así que si estás usando Google Listing para promocionar y vender tus productos desde los resultados de búsqueda de Google tienes que aceptar que de vez en cuando te visite John Smith y te deje unos cuantos carritos abandonados, para – teóricamente – comprobar que los precios que declaras en tus listados son reales.

Por qué es un problema que haya carritos abandonados falsos

Uno de los mayores problemas de la actividad de estos bots que dejan carritos abandonados falsos es que pervierten el análisis y métricas del abandono de carritos, haciéndolo inútil, al no reflejar estadísticas reales.

Muchos vendedores confían en estas estadísticas, por su importancia, para tomar decisiones de marketing.

Ya sea que estas decisiones estén relacionadas con cambiar el diseño de ls tienda o cuánto gastan en anuncios, con estos bots distorsionando las estadísticas de carritos abandonados, podría llevar a una mala toma de decisiones, una inversión equivocada, en definitiva, pérdida de tiempo, dinero y recursos.

La cosa es peor si añades alguna estrategia de recuperación de carritos abandonados, pues esto va a implicar envío de correos electrónicos al cliente potencial que abandonó el carrito, para recordarle que no completó su compra.

Como estos bots usan correos electrónicos falsos pueden causar problemas a las tiendas e incluso dañar tu «reputación de correo electrónico». Esto significa que si rebotan demasiados correos electrónicos cuando se envían a estas direcciones de correo electrónico falsas, la tienda online podría experimentar tasas de entrega de correo electrónico más bajas.

Este efecto colateral podría dañar significativamente el negocio, ya que cualquier correo electrónico de marketing, confirmación de pedidos o correos electrónicos genuinos de carritos abandonados se enviarían a la carpeta de correo no deseado del usuario.

Cómo saber si tengo carritos abandonados falsos

Igual te estás preguntando que cómo se sabe eso, si ni WordPress ni WooCommerce tienen ninguna página donde ver los carritos abandonados.

En realidad WooCommerce sí guarda los carritos abandonados, solo que por defecto no los muestra en ninguna página, algo que otras plataformas sí hacen por defecto.

Para poder ver, pero sobre todo analizar y realizar acciones para recuperar carritos abandonados tienes normalmente que instalar un plugin de recuperación de carritos abandonados.

Básicamente te ofrecen una interfaz desde la que, mediante correos electrónicos automáticos, tratar de convencer al cliente potencial de que termine su compra.

Cómo evitar los carritos abandonados falsos

Antes de empezar a bloquear como locos relájate un momento y piensa …

¿Realmente quieres bloquear al bot John Smith de Google?

De momento no hay modo de filtrar los resultados de los carritos abandonados de este famoso bot de Google así que la única solución sería borrar masivamente también sus carritos abandonados para que no perviertan tus estadísticas.

Además, no estaría de más que – más pronto que tarde – los desarrolladores de plugins de abandono de carritos introduzcan algún tipo de filtro para poder evitar enviar correos electrónicos de recuperación a los bots que vayamos identificando, incluido John Smith y sus miles de direcciones de correo de GMail.

Evitar el rastreo de bots que crean carritos falsos y ahorrar ancho de banda

Un modo básico de evitar ser atacado por este tipo de bots que crean carritos falsos o carritos fantasma, es añadir unas líneas al archivo robots.txt para tratar de impedir el rastreo de aquellas páginas y enlaces que muestran que tu web tiene funcionalidades de tienda online.

De este modo evitaremos el primer paso de todo bot: identificar posibles objetivos mediante rastreos masivos en Google y resto de buscadores.

Para ello deberíamos añadir lo siguiente al archivo robots.txt, a continuación de su contenido actual:

User-agent: *
Disallow: /*add-to-cart=*
Disallow: /carrito/
Disallow: /finalizar-compra/
Disallow: /mi-cuenta/
Disallow: /tienda/ (ojo con esta línea, no vayas a desindexar toda la tienda)

O esto si nuestra tienda o sus URLs están en inglés:

User-agent: *
Disallow: /*add-to-cart=*:
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /shop/ (ojo con esta línea, no vayas a desindexar toda la tienda)

Esta es una lista estándar de URLs a las que desaconsejar el rastreo, pero puedes ampliarla a todas aquellas que haya en tu tienda online y que puedan igualmente identificarla como tal, siempre y cuando no evites el rastreo de tus productos, categorías, etc.

Es cierto que añadir estas líneas al archivo robots.txt no va a impedir totalmente el rastreo de tus URLs de la tienda pero, en muchos casos, solo con añadir estas líneas ha acabado con el problema de los carritos falsos generados por bots, así que no lo descartes.

Bloquear los bots que crean carritos falsos con CloudFlare

Si sirves contenido desde la CDN de CloudFlare, este servicio tiene una utilidad que puede bloquear montones de bots indeseados de manera automática, así que no está de más probarlo.

Es una funcionalidad disponible incluso en las cuentas gratuitas y se llama Bot Fight, de la que ya hablamos porque podría tener efectos adversos, así que no lo actives a la ligera, actívalo y comprueba qué pasa, con los bots, pero también con los procesos habituales de tu tienda online.

Bloquear los bots que crean carritos falsos con tu plugin de seguridad

Si ya tienes un buen plugin de seguridad utiliza su registro de actividad para bloquear aquellos bots que identifiques que crean carritos abandonados. Es una tarea tediosa, pero efectiva y totalmente controlada, al no ser un automatismo, que podría bloquear lo que no quieras.

Bloquear los bots que crean carritos falsos con Blackhole for Bad Bots

Si tu plugin de seguridad no tiene ninguna utilidad para detectar, registrar o bloquear bots puedes probar con Blackhole for Bad Bots, que sirve específicamente para esta necesidad.

Este plugin crea una trampa para bots muy curiosa:

  1. Añade un enlace activador oculto al pie de página de tu sitio
  2. Tienes que añadir una regla al archivo robots.txt que prohibe a todos los bots seguir el enlace oculto que creó antes.
  3. Los bots que no hagan caso del archivo robots.txt rastrearán el enlace oculto y caerán en la trampa.
  4. Todos los bots que sigan ese enlace oculto serán bloqueados.

Para que todo funcione, una vez que instales el plugin, pásate por su página de ajustes, donde tienes un resumen de las instrucciones, además de algunos ajustes para añadir bots a la lista blanca, para que no los bloquee, especificar si quieres alertas o incluso el mensaje a mostrar a los bots.

Además también hay una pantalla con la lista de bots bloqueados, donde puedes desbloquearlos haciendo clic en la [X].

Es realmente efectivo, y además te permite controlar qué se bloquea y qué no.

El plugin es compatible con la mayoría de plugins de caché, pero debes siempre desactivar la caché de página completa, eso sí.

Bloquear los bots que crean carritos falsos desde .htaccess

Para finalizar, siempre puedes recurrir al archivo del servidor .htaccess para bloquear todos aquellos bots que creen carritos falsos, o al menos añadir reglas que impidan el acceso a la mayoría de los bots maliciosos.

No hay una regla fija para evitar estos bots que crean carritos falsos, pero siempre es un buen comienzo la lista 7G de Perishable Press, una serie de líneas que, añadiéndolas al principio de tu archivo .htaccess, bloquean montones de bots maliciosos.

Son nada menos que 147 líneas, pero constituyen un potente cortafuegos para tu web:

# 7G FIREWALL v1.5 20211103
# @ https://perishablepress.com/7g-firewall/
# 7G:[CORE]
ServerSignature Off
Options -Indexes
RewriteEngine On
RewriteBase /
# 7G:[QUERY STRING]
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} ([a-z0-9]{2000,}) [NC,OR]
RewriteCond %{QUERY_STRING} (/|%2f)(:|%3a)(/|%2f) [NC,OR]
RewriteCond %{QUERY_STRING} (order(\s|%20)by(\s|%20)1--) [NC,OR]
RewriteCond %{QUERY_STRING} (/|%2f)(\*|%2a)(\*|%2a)(/|%2f) [NC,OR]
RewriteCond %{QUERY_STRING} (`|<|>|\^|\|\\|0x00|%00|%0d%0a) [NC,OR]
RewriteCond %{QUERY_STRING} (ckfinder|fck|fckeditor|fullclick) [NC,OR]
RewriteCond %{QUERY_STRING} ((.*)header:|(.*)set-cookie:(.*)=) [NC,OR]
RewriteCond %{QUERY_STRING} (cmd|command)(=|%3d)(chdir|mkdir)(.*)(x20) [NC,OR]
RewriteCond %{QUERY_STRING} (globals|mosconfig([a-z_]{1,22})|request)(=|\[) [NC,OR]
RewriteCond %{QUERY_STRING} (/|%2f)((wp-)?config)((\.|%2e)inc)?((\.|%2e)php) [NC,OR]
RewriteCond %{QUERY_STRING} (thumbs?(_editor|open)?|tim(thumbs?)?)((\.|%2e)php) [NC,OR]
RewriteCond %{QUERY_STRING} (absolute_|base|root_)(dir|path)(=|%3d)(ftp|https?) [NC,OR]
RewriteCond %{QUERY_STRING} (localhost|loopback|127(\.|%2e)0(\.|%2e)0(\.|%2e)1) [NC,OR]
RewriteCond %{QUERY_STRING} (s)?(ftp|inurl|php)(s)?(:(/|%2f|%u2215)(/|%2f|%u2215)) [NC,OR]
RewriteCond %{QUERY_STRING} (\.|20)(get|the)(_|%5f)(permalink|posts_page_url)(\(|%28) [NC,OR]
RewriteCond %{QUERY_STRING} ((boot|win)((\.|%2e)ini)|etc(/|%2f)passwd|self(/|%2f)environ) [NC,OR]
RewriteCond %{QUERY_STRING} (((/|%2f){3,3})|((\.|%2e){3,3})|((\.|%2e){2,2})(/|%2f|%u2215)) [NC,OR]
RewriteCond %{QUERY_STRING} (benchmark|char|exec|fopen|function|html)(.*)(\(|%28)(.*)(\)|%29) [NC,OR]
RewriteCond %{QUERY_STRING} (php)([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}) [NC,OR]
RewriteCond %{QUERY_STRING} (e|%65|%45)(v|%76|%56)(a|%61|%31)(l|%6c|%4c)(.*)(\(|%28)(.*)(\)|%29) [NC,OR]
RewriteCond %{QUERY_STRING} (/|%2f)(=|%3d|$&|_mm|cgi(\.|-)|inurl(:|%3a)(/|%2f)|(mod|path)(=|%3d)(\.|%2e)) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3c)(.*)(e|%65|%45)(m|%6d|%4d)(b|%62|%42)(e|%65|%45)(d|%64|%44)(.*)(>|%3e) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3c)(.*)(i|%69|%49)(f|%66|%46)(r|%72|%52)(a|%61|%41)(m|%6d|%4d)(e|%65|%45)(.*)(>|%3e) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3c)(.*)(o|%4f|%6f)(b|%62|%42)(j|%4a|%6a)(e|%65|%45)(c|%63|%43)(t|%74|%54)(.*)(>|%3e) [NC,OR]
RewriteCond %{QUERY_STRING} (<|%3c)(.*)(s|%73|%53)(c|%63|%43)(r|%72|%52)(i|%69|%49)(p|%70|%50)(t|%74|%54)(.*)(>|%3e) [NC,OR]
RewriteCond %{QUERY_STRING} (\+|%2b|%20)(d|%64|%44)(e|%65|%45)(l|%6c|%4c)(e|%65|%45)(t|%74|%54)(e|%65|%45)(\+|%2b|%20) [NC,OR]
RewriteCond %{QUERY_STRING} (\+|%2b|%20)(i|%69|%49)(n|%6e|%4e)(s|%73|%53)(e|%65|%45)(r|%72|%52)(t|%74|%54)(\+|%2b|%20) [NC,OR]
RewriteCond %{QUERY_STRING} (\+|%2b|%20)(s|%73|%53)(e|%65|%45)(l|%6c|%4c)(e|%65|%45)(c|%63|%43)(t|%74|%54)(\+|%2b|%20) [NC,OR]
RewriteCond %{QUERY_STRING} (\+|%2b|%20)(u|%75|%55)(p|%70|%50)(d|%64|%44)(a|%61|%41)(t|%74|%54)(e|%65|%45)(\+|%2b|%20) [NC,OR]
RewriteCond %{QUERY_STRING} (\\x00|(\"|%22|\'|%27)?0(\"|%22|\'|%27)?(=|%3d)(\"|%22|\'|%27)?0|cast(\(|%28)0x|or%201(=|%3d)1) [NC,OR]
RewriteCond %{QUERY_STRING} (g|%67|%47)(l|%6c|%4c)(o|%6f|%4f)(b|%62|%42)(a|%61|%41)(l|%6c|%4c)(s|%73|%53)(=|\[|%[0-9A-Z]{0,2}) [NC,OR]
RewriteCond %{QUERY_STRING} (_|%5f)(r|%72|%52)(e|%65|%45)(q|%71|%51)(u|%75|%55)(e|%65|%45)(s|%73|%53)(t|%74|%54)(=|\[|%[0-9A-Z]{2,}) [NC,OR]
RewriteCond %{QUERY_STRING} (j|%6a|%4a)(a|%61|%41)(v|%76|%56)(a|%61|%31)(s|%73|%53)(c|%63|%43)(r|%72|%52)(i|%69|%49)(p|%70|%50)(t|%74|%54)(:|%3a)(.*)(;|%3b|\)|%29) [NC,OR]
RewriteCond %{QUERY_STRING} (b|%62|%42)(a|%61|%41)(s|%73|%53)(e|%65|%45)(6|%36)(4|%34)(_|%5f)(e|%65|%45|d|%64|%44)(e|%65|%45|n|%6e|%4e)(c|%63|%43)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(.*)(\()(.*)(\)) [NC,OR]
RewriteCond %{QUERY_STRING} (@copy|\$_(files|get|post)|allow_url_(fopen|include)|auto_prepend_file|blexbot|browsersploit|(c99|php)shell|curl(_exec|test)|disable_functions?|document_root|elastix|encodeuricom|exploit|fclose|fgets|file_put_contents|fputs|fsbuff|fsockopen|gethostbyname|grablogin|hmei7|input_file|null|open_basedir|outfile|passthru|phpinfo|popen|proc_open|quickbrute|remoteview|root_path|safe_mode|shell_exec|site((.){0,2})copier|sux0r|trojan|user_func_array|wget|xertive) [NC,OR]
RewriteCond %{QUERY_STRING} (;|<|>|\'|\"|\)|%0a|%0d|%22|%27|%3c|%3e|%00)(.*)(/\*|alter|base64|benchmark|cast|concat|convert|create|encode|declare|delete|drop|insert|md5|request|script|select|set|union|update) [NC,OR]
RewriteCond %{QUERY_STRING} ((\+|%2b)(concat|delete|get|select|union)(\+|%2b)) [NC,OR]
RewriteCond %{QUERY_STRING} (union)(.*)(select)(.*)(\(|%28) [NC,OR]
RewriteCond %{QUERY_STRING} (concat|eval)(.*)(\(|%28) [NC]
RewriteRule .* - [F,L]
# RewriteRule .* /7G_log.php?log [END,NE,E=7G_QUERY_STRING:%1___%2___%3]
</IfModule>
# 7G:[REQUEST URI]
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} (\^|`|<|>|\\|\|) [NC,OR]
RewriteCond %{REQUEST_URI} ([a-z0-9]{2000,}) [NC,OR]
RewriteCond %{REQUEST_URI} (=?\\(\'|%27)/?)(\.) [NC,OR]
RewriteCond %{REQUEST_URI} (/)(\*|\"|\'|\.|,|&|&amp;?)/?$ [NC,OR]
RewriteCond %{REQUEST_URI} (\.)(php)(\()?([0-9]+)(\))?(/)?$ [NC,OR]
RewriteCond %{REQUEST_URI} (/)(vbulletin|boards|vbforum)(/)? [NC,OR]
RewriteCond %{REQUEST_URI} /((.*)header:|(.*)set-cookie:(.*)=) [NC,OR]
RewriteCond %{REQUEST_URI} (/)(ckfinder|fck|fckeditor|fullclick) [NC,OR]
RewriteCond %{REQUEST_URI} (\.(s?ftp-?)config|(s?ftp-?)config\.) [NC,OR]
RewriteCond %{REQUEST_URI} (\{0\}|\"?0\"?=\"?0|\(/\(|\.\.\.|\+\+\+|\\\") [NC,OR]
RewriteCond %{REQUEST_URI} (thumbs?(_editor|open)?|tim(thumbs?)?)(\.php) [NC,OR]
RewriteCond %{REQUEST_URI} (\.|20)(get|the)(_)(permalink|posts_page_url)(\() [NC,OR]
RewriteCond %{REQUEST_URI} (///|\?\?|/&&|/\*(.*)\*/|/:/|\\\\|0x00|%00|%0d%0a) [NC,OR]
RewriteCond %{REQUEST_URI} (/%7e)(root|ftp|bin|nobody|named|guest|logs|sshd)(/) [NC,OR]
RewriteCond %{REQUEST_URI} (/)(etc|var)(/)(hidden|secret|shadow|ninja|passwd|tmp)(/)?$ [NC,OR]
RewriteCond %{REQUEST_URI} (s)?(ftp|http|inurl|php)(s)?(:(/|%2f|%u2215)(/|%2f|%u2215)) [NC,OR]
RewriteCond %{REQUEST_URI} (/)(=|\$&?|&?(pws|rk)=0|_mm|_vti_|cgi(\.|-)?|(=|/|;|,)nt\.) [NC,OR]
RewriteCond %{REQUEST_URI} (\.)(ds_store|htaccess|htpasswd|init?|mysql-select-db)(/)?$ [NC,OR]
RewriteCond %{REQUEST_URI} (/)(bin)(/)(cc|chmod|chsh|cpp|echo|id|kill|mail|nasm|perl|ping|ps|python|tclsh)(/)?$ [NC,OR]
RewriteCond %{REQUEST_URI} (/)(::[0-9999]|%3a%3a[0-9999]|127\.0\.0\.1|localhost|loopback|makefile|pingserver|wwwroot)(/)? [NC,OR]
RewriteCond %{REQUEST_URI} (\(null\)|\{\$itemURL\}|cAsT\(0x|echo(.*)kae|etc/passwd|eval\(|self/environ|\+union\+all\+select) [NC,OR]
RewriteCond %{REQUEST_URI} (/)?j((\s)+)?a((\s)+)?v((\s)+)?a((\s)+)?s((\s)+)?c((\s)+)?r((\s)+)?i((\s)+)?p((\s)+)?t((\s)+)?(%3a|:) [NC,OR]
RewriteCond %{REQUEST_URI} (/)(awstats|(c99|php|web)shell|document_root|error_log|listinfo|muieblack|remoteview|site((.){0,2})copier|sqlpatch|sux0r) [NC,OR]
RewriteCond %{REQUEST_URI} (/)((php|web)?shell|crossdomain|fileditor|locus7|nstview|php(get|remoteview|writer)|r57|remview|sshphp|storm7|webadmin)(.*)(\.|\() [NC,OR]
RewriteCond %{REQUEST_URI} (/)(author-panel|bitrix|class|database|(db|mysql)-?admin|filemanager|htdocs|httpdocs|https?|mailman|mailto|msoffice|mysql|_?php-my-admin(.*)|tmp|undefined|usage|var|vhosts|webmaster|www)(/) [NC,OR]
RewriteCond %{REQUEST_URI} (base64_(en|de)code|benchmark|child_terminate|curl_exec|e?chr|eval|function|fwrite|(f|p)open|html|leak|passthru|p?fsockopen|phpinfo|posix_(kill|mkfifo|setpgid|setsid|setuid)|proc_(close|get_status|nice|open|terminate)|(shell_)?exec|system)(.*)(\()(.*)(\)) [NC,OR]
RewriteCond %{REQUEST_URI} (/)(^$|00.temp00|0day|3index|3xp|70bex?|admin_events|bkht|(php|web)?shell|c99|config(\.)?bak|curltest|db|dompdf|filenetworks|hmei7|index\.php/index\.php/index|jahat|kcrew|keywordspy|libsoft|marg|mobiquo|mysql|nessus|php-?info|racrew|sql|vuln|(web-?|wp-)?(conf\b|config(uration)?)|xertive)(\.php) [NC,OR]
RewriteCond %{REQUEST_URI} (\.)(7z|ab4|ace|afm|ashx|aspx?|bash|ba?k?|bin|bz2|cfg|cfml?|cgi|conf\b|config|ctl|dat|db|dist|dll|eml|engine|env|et2|exe|fec|fla|git|hg|inc|ini|inv|jsp|log|lqd|make|mbf|mdb|mmw|mny|module|old|one|orig|out|passwd|pdb|phtml|pl|profile|psd|pst|ptdb|pwd|py|qbb|qdf|rar|rdf|save|sdb|sql|sh|soa|svn|swf|swl|swo|swp|stx|tar|tax|tgz|theme|tls|tmd|wow|xtmpl|ya?ml|zlib)$ [NC]
RewriteRule .* - [F,L]
# RewriteRule .* /7G_log.php?log [END,NE,E=7G_REQUEST_URI:%1___%2___%3]
</IfModule>
# 7G:[USER AGENT]
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_USER_AGENT} ([a-z0-9]{2000,}) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (&lt;|%0a|%0d|%27|%3c|%3e|%00|0x00) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (ahrefs|alexibot|majestic|mj12bot|rogerbot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ((c99|php|web)shell|remoteview|site((.){0,2})copier) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (econtext|eolasbot|eventures|liebaofast|nominet|oppo\sa33) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (base64_decode|bin/bash|disconnect|eval|lwp-download|unserialize|\\\x22) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} (acapbot|acoonbot|asterias|attackbot|backdorbot|becomebot|binlar|blackwidow|blekkobot|blexbot|blowfish|bullseye|bunnys|butterfly|careerbot|casper|checkpriv|cheesebot|cherrypick|chinaclaw|choppy|clshttp|cmsworld|copernic|copyrightcheck|cosmos|crescent|cy_cho|datacha|demon|diavol|discobot|dittospyder|dotbot|dotnetdotcom|dumbot|emailcollector|emailsiphon|emailwolf|extract|eyenetie|feedfinder|flaming|flashget|flicky|foobot|g00g1e|getright|gigabot|go-ahead-got|gozilla|grabnet|grafula|harvest|heritrix|httrack|icarus6j|jetbot|jetcar|jikespider|kmccrew|leechftp|libweb|linkextractor|linkscan|linkwalker|loader|masscan|miner|mechanize|morfeus|moveoverbot|netmechanic|netspider|nicerspro|nikto|ninja|nutch|octopus|pagegrabber|petalbot|planetwork|postrank|proximic|purebot|pycurl|python|queryn|queryseeker|radian6|radiation|realdownload|scooter|seekerspider|semalt|siclab|sindice|sistrix|sitebot|siteexplorer|sitesnagger|skygrid|smartdownload|snoopy|sosospider|spankbot|spbot|sqlmap|stackrambler|stripper|sucker|surftbot|sux0r|suzukacz|suzuran|takeout|teleport|telesoft|true_robots|turingos|turnit|vampire|vikspider|voideye|webleacher|webreaper|webstripper|webvac|webviewer|webwhacker|winhttp|wwwoffle|woxbot|xaldon|xxxyy|yamanalab|yioopbot|youda|zeus|zmeu|zune|zyborg) [NC]
RewriteRule .* - [F,L]
# RewriteRule .* /7G_log.php?log [END,NE,E=7G_USER_AGENT:%1]
</IfModule>
# 7G:[REMOTE HOST]
<IfModule mod_rewrite.c>
RewriteCond %{REMOTE_HOST} (163data|amazonaws|colocrossing|crimea|g00g1e|justhost|kanagawa|loopia|masterhost|onlinehome|poneytel|sprintdatacenter|reverse.softlayer|safenet|ttnet|woodpecker|wowrack) [NC]
RewriteRule .* - [F,L]
# RewriteRule .* /7G_log.php?log [END,NE,E=7G_REMOTE_HOST:%1]
</IfModule>
# 7G:[HTTP REFERRER]
<IfModule mod_rewrite.c>
RewriteCond %{HTTP_REFERER} (semalt.com|todaperfeita) [NC,OR]
RewriteCond %{HTTP_REFERER} (order(\s|%20)by(\s|%20)1--) [NC,OR]
RewriteCond %{HTTP_REFERER} (blue\spill|cocaine|ejaculat|erectile|erections|hoodia|huronriveracres|impotence|levitra|libido|lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby|ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo) [NC]
RewriteRule .* - [F,L]
# RewriteRule .* /7G_log.php?log [END,NE,E=7G_HTTP_REFERRER:%1]
</IfModule>
# 7G:[REQUEST METHOD]
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_METHOD} ^(connect|debug|move|trace|track) [NC]
RewriteRule .* - [F,L]
# RewriteRule .* /7G_log.php?log [END,NE,E=7G_REQUEST_METHOD:%1]
</IfModule>

Pero si quieres un control más preciso y concreto, primero debes identificar las IPs de los bots que crean carritos falsos y añadir reglas que bloqueen esas IPs o rangos de IP concretas, siempre con la precaución de no bloquear demasiado.

Un ejemplo sería así:

 # bloquear rangos de IPs
<Limit GET POST PUT>
order allow,deny
allow from all
deny from 99.88.77.66
deny from 99.88.77.*
deny from 99.88.*.*
deny from 99.*.*.*
</Limit>

Y hasta aquí hemos llegado, espero. Ya me contarás en los comentarios si has sufrido algún de estos ataques de bots que generan carritos falsos, si has tomado alguna de las medidas aquí explicadas y cuál te ha servido.

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 5 / 5. Total de votos: 18

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

Sobre el autor

6 comentarios en “Quién crea masivamente carritos abandonados falsos y cómo evitarlo”

  1. Jose González

    Este asunto de los bots y el rastreo mediante cookies hace tiempo que se nos ha ido de las manos. Esta semana me ha pasado una cosa curiosa que no había visto hasta ahora. Accedí a una tienda online desde mi smartphone en la que puse varios artículos en la cesta sin llegar a registrarme en la web. Pues resulta que unos minutos después, navegando en la aplicación de Facebook, me sale un anuncio de dicha tienda diciendome que había dejado artículos en el carrito sin comprar y que me ofrecía un 10% de descuento adicional por tiempo limitado. Nunca hubiera pensado que las cookies permitieran rastrearnos de forma tan agresiva.

    1. jojo, la leche

      Y eso no es nada, el día que salga a la luz todo lo que «comparten» por ahí mediante el puto remarketing va a arder Troya. Poco riguroso es el RGPD y nos quejamos del banner, pero lo que hacen con nuestros datos sin consentimiento es para meterles a todos en trabajos forzados por cabrones

  2. José Ramón Padrón

    Interesantísimo el artículo Fernando. Pregunta de novato: ¿Afectaría de alguna forma al posicionamiento bloquear esta acción de Google? (al resto de bots ni agua).

  3. Fernando, súper interesante el artículo y muy completo. Ayuda mucho. Solo un apunte, lo bueno de estos bots por lo menos en mi caso, es que no llegan a dejar una dirección de mail. Por lo tanto, aunque tengo activado el plugin de recuperación de carritos, no se llega a enviar el mail sugerente de que recupere su carrito, que es un alivio, como dices tú para que no se generen tantos envíos de mail, de nuevo, mil Gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio