🏡 En Plasencia, Apartamentos Bambú: comodidad, tranquilidad y una ubicación perfecta para disfrutar de la estancia
Cuando buscamos alojamiento para unos días de descanso o una escapada, normalmente queremos algo más que un simple lugar donde dormir. Queremos un espacio donde sentirnos cómodos, donde todo esté cuidado y donde la estancia resulte agradable desde el primer momento. Precisamente esa es la sensación que transmiten los Apartamentos Bambú, un alojamiento que combina comodidad, buena ubicación y una relación calidad-precio realmente atractiva.
Desde que uno llega, se percibe que se trata de un lugar pensado para el descanso. Los apartamentos están diseñados para ofrecer una experiencia acogedora, con espacios bien organizados y un ambiente tranquilo que invita a desconectar del ritmo cotidiano. No es el típico alojamiento impersonal: aquí se nota que se ha puesto atención en los detalles para que el huésped se sienta cómodo durante toda la estancia.
Uno de los aspectos que más destacan quienes se alojan en Apartamentos Bambú es su excelente ubicación. Esto permite disfrutar de la zona con facilidad, moverse con comodidad y tener a mano servicios, lugares de interés y espacios donde pasear o relajarse. La localización es ideal tanto para quienes quieren explorar el entorno como para quienes simplemente buscan tranquilidad y descanso.
Guía de Migración Quirúrgica: Cómo Rescatar o Actualizar tu PrestaShop con Éxito
Cuando una actualización automática de PrestaShop falla o una instalación empieza a dar errores inexplicables (como el bucle de redirecciones 302 o errores de Symfony), la solución más robusta no es reparar, sino trasplantar.
Esta técnica, conocida como migración quirúrgica, consiste en instalar un PrestaShop limpio y mover únicamente el "corazón" de tu negocio (productos, categorías y clientes). Es el método definitivo tanto para reparar instalaciones dañadas como para realizar una actualización mayor sin arrastrar errores del pasado.
1. Preparación del Entorno
Antes de tocar la base de datos, prepara el nuevo destino:
-
Instalación Limpia: Instala la versión de PrestaShop deseada en una carpeta o base de datos nueva.
-
Verificación: Asegúrate de que el panel de administración (Backoffice) funciona perfectamente.
-
Copia de archivos: Mueve las carpetas de imágenes y archivos de usuario desde la instalación antigua a la nueva:
En el caso de que sea una actualización NUEVA..
/img/(Fotos de productos y categorías).
/download/y/upload/.
En el caso de que sea una ACTUALIZACIÓN ENTRE IGUALES VERSIONES.
/img/: Contiene todas las fotos de productos, categorías, fabricantes y logos. Es vital.
/download/: Si vendes productos virtuales.
/upload/: Archivos que los clientes hayan subido.
/themes/tu-tema-actual/: La carpeta de tu plantilla.
/modules/: Aquí hay un matiz. Copia solo los módulos que hayas comprado o personalizado. No copies los módulos nativos (ps_...), deja que la instalación limpia de la 8.2 instale sus versiones actualizadas.
/mails/: Si personalizaste los correos de envío, pedidos, etc.
2. El Script de Extracción (Exportación)
Para evitar el "ruido" de configuraciones corruptas, utilizaremos mysqldump desde la terminal (SSH). Este comando extraerá solo las tablas vitales del catálogo, atributos, clientes y pedidos.
Ejecuta este comando en el servidor de la instalación antigua:
(Servidor de Origen)
mysqldump -u usuario -p base_de_datos \ ps_product ps_product_lang ps_product_shop ps_product_attribute \
ps_product_attribute_combination ps_product_attribute_lang ps_product_attribute_shop \
ps_category ps_category_lang ps_category_shop ps_category_product \
ps_attribute ps_attribute_group ps_attribute_group_lang ps_attribute_lang \
ps_feature ps_feature_lang ps_feature_product ps_feature_value ps_feature_value_lang \
ps_stock_available ps_manufacturer ps_manufacturer_lang ps_manufacturer_shop \
ps_image ps_image_lang ps_image_shop \
ps_customer ps_customer_group ps_address ps_group ps_group_lang \
ps_orders ps_order_detail ps_order_history \
ps_image_type ps_meta ps_shop ps_shop_url ps_shop_group ps_lang ps_lang_shop \
ps_currency ps_country ps_country_lang \
ps_cms ps_cms_lang ps_cms_shop \
ps_linksmenutop ps_linksmenutop_lang \
ps_homeslider ps_homeslider_slides ps_homeslider_slides_lang \
ps_configuration \
> migracion_esencial.sql
sed -i 's/viejo-dominio.com/nuevo-dominio.com/g' migracion_esencial.sql
Nota: Sustituye
usuarioybase_de_datospor tus credenciales reales. El archivo resultantemigracion_esencial.sqlcontendrá toda la inteligencia de tu negocio.
3. El Script de Restauración (Importación)
Antes de importar, debemos preparar la base de datos de destino. La nueva instalación ya tiene tablas con datos de ejemplo; si importamos encima, los IDs chocarán.
Paso A: Limpiar tablas de destino
Crea un archivo llamado limpiar_destino.sql con el siguiente contenido y ejecútalo en la base de datos nueva:
(Servidor de destino)
-- Desactivar revisión de llaves foráneas para poder vaciar tablas SET FOREIGN_KEY_CHECKS = 0; TRUNCATE TABLE ps_product; TRUNCATE TABLE ps_product_lang; TRUNCATE TABLE ps_product_shop; TRUNCATE TABLE ps_product_attribute; TRUNCATE TABLE ps_product_attribute_combination; TRUNCATE TABLE ps_product_attribute_lang; TRUNCATE TABLE ps_product_attribute_shop; TRUNCATE TABLE ps_category; TRUNCATE TABLE ps_category_lang; TRUNCATE TABLE ps_category_shop; TRUNCATE TABLE ps_category_product; TRUNCATE TABLE ps_attribute; TRUNCATE TABLE ps_attribute_group; TRUNCATE TABLE ps_attribute_group_lang; TRUNCATE TABLE ps_attribute_lang; TRUNCATE TABLE ps_feature; TRUNCATE TABLE ps_feature_lang; TRUNCATE TABLE ps_feature_product; TRUNCATE TABLE ps_feature_value; TRUNCATE TABLE ps_feature_value_lang; TRUNCATE TABLE ps_customer; TRUNCATE TABLE ps_address; TRUNCATE TABLE ps_orders; TRUNCATE TABLE ps_order_detail; SET FOREIGN_KEY_CHECKS = 1;
Paso B: Importar los datos
(Servidor de destino)
Ahora, inyecta el archivo que exportamos anteriormente en la base de datos nueva:
# Importar los datos esenciales a la nueva tienda
mysql -u usuario -p base_de_datos_nueva < migracion_esencial.sql
4. El "Ancla" de Seguridad: La Cookie Key
Para que las contraseñas de los clientes importados sigan funcionando, debes sincronizar la clave de cifrado.
-
Busca en tu instalación antigua el archivo
app/config/parameters.php. -
Localiza el valor de
'cookie_key'. -
Pégalo en el archivo
app/config/parameters.phpde la nueva instalación.
5. Pasos Post-Migración
Una vez completado el trasplante, realiza estas tres acciones en el nuevo panel de administración:
-
Regenerar .htaccess: Ve a Parámetros de la Tienda > Tráfico & SEO y pulsa "Guardar".
-
Limpiar Caché: En Parámetros Avanzados > Rendimiento, limpia la caché de Symfony.
-
Indexar Productos: En Parámetros de la Tienda > Buscar, reconstruye el índice para que el buscador de la web encuentre los productos recién importados.
5. El Proceso de Integración (Post-Trasplante)
Una vez que hayas volcado tus carpetas antiguas (/img, /modules, /themes, /mails) sobre la instalación limpia, el sistema está en un estado "híbrido". Sigue este orden exacto para consolidar la migración:
-
Sincronizar Identidad: Copia el
cookie_keydel archivoapp/config/parameters.phpantiguo al nuevo. Sin esto, las contraseñas importadas no funcionarán. -
Limpieza e Importación SQL: Ejecuta el script de
TRUNCATEy luego importa tumigracion_esencial.sql. -
Regenerar el motor de rutas: Ve a Parámetros de la tienda > Tráfico & SEO, desactiva las "URLs amigables", guarda, y vuelve a activarlas. Esto reconstruye el archivo
.htaccess. -
Reconstruir el índice de búsqueda: Ve a Parámetros de la tienda > Buscar y pulsa en "Añadir los productos que faltan al índice".
6. Script de Comprobación Final (Salud del Sistema)
Para asegurarte de que la migración ha sido exitosa y no quedan "cabos sueltos", hemos preparado este script de verificación. Puedes ejecutar estas consultas SQL para detectar posibles errores de integridad:
-- 1. Verificar si hay productos sin categorías (Productos huérfanos) SELECT COUNT(*) FROM ps_product p LEFT JOIN ps_category_product cp ON (p.id_product = cp.id_product) WHERE cp.id_category IS NULL; -- 2. Verificar si hay imágenes que no tienen asignado un producto físico SELECT COUNT(*) FROM ps_image i LEFT JOIN ps_product p ON (i.id_product = p.id_product) WHERE p.id_product IS NULL; -- 3. Comprobar que los clientes tienen su dirección asociada SELECT c.email, a.alias FROM ps_customer c LEFT JOIN ps_address a ON (c.id_customer = a.id_customer) WHERE a.id_address IS NULL;
Verificación de Permisos (Terminal SSH)
Finalmente, ejecuta este comando para asegurar que PrestaShop tiene permisos de escritura en las carpetas que acabas de mover:
# Comprobar permisos de escritura en carpetas críticas find img/ modules/ themes/ mails/ -type d -not -perm 755 find img/ modules/ themes/ mails/ -type f -not -perm 644
Consejo final de ExtreHost: Si tras la migración ves una pantalla en blanco, activa el Modo Depuración en config/defines.inc.php cambiando PS_MODE_DEV a true. Esto te dirá exactamente qué módulo está causando el conflicto en la nueva versión.
Resumen para el Administrador
-
Archivos movidos: OK.
-
Base de Datos inyectada: OK.
-
Cookie Key sincronizada: OK.
-
URLs e Índices regenerados: OK.
¡Tu tienda ahora es una instalación limpia, rápida y libre de errores heredados!
Este método es el más limpio y seguro para dejar atrás errores críticos de sistema. Al tratar los datos como piezas modulares, garantizas que la nueva instalación nazca sana y optimizada.
Situación inicial - Tras el primer paso.
La tienda original funcionaba correctamente. La tienda clonada también arrancaba, cargaba productos, tema, páginas y estructura general. Sin embargo, al abrir el menú “Productos”, la navegación no coincidía con la original.
A simple vista parecía un problema de categorías no clonadas, pero al revisar la base de datos se comprobó que las categorías sí existían. Es decir: el problema no era la ausencia de datos, sino la forma en la que PrestaShop los estaba utilizando en la tienda clonada.
Ese tipo de incidencia es muy habitual en migraciones reales. La información está en base de datos, pero faltan asociaciones internas o configuraciones complementarias que permiten que el front-end la represente correctamente.
Paso 1. Confirmar si las categorías existen realmente en destino
Lo primero fue comprobar si las categorías del menú estaban presentes en la base de datos de la tienda clonada.
Consulta usada:
SELECT c.id_category, cl.name, cs.id_shop FROM ps_category c JOIN ps_category_lang cl ON c.id_category = cl.id_category LEFT JOIN ps_category_shop cs ON c.id_category = cs.id_category WHERE cl.id_lang = 1 ORDER BY c.id_category;
Con esta verificación se confirmó que categorías como:
- Productos
- Productos Sanitarios
- Cuidado Capilar
- Complemento Alimenticio
- Bebés Y Mamás
- Accesorios del Bebé
- Alimentación del Bebé
y muchas otras, ya existían en la base de datos destino.
Conclusión de este paso: las categorías estaban clonadas. El problema no era su ausencia.
Paso 2. Comprobar si el menú estaba siendo gestionado por el módulo correcto
Cuando una categoría existe pero no aparece correctamente en el menú, el siguiente paso es revisar el sistema que genera esa navegación.
En este caso se revisó si el módulo responsable era ps_mainmenu o algún sistema de menú propio del tema.
Primero se buscó la configuración del menú en ps_configuration, pero la consulta inicial no devolvió resultados:
SELECT * FROM ps_configuration WHERE name LIKE '%MAINMENU%';
Esto no significaba necesariamente que el menú no existiera, sino que el módulo podía guardar la configuración con otro nombre.
Después se comprobó directamente qué módulos de menú estaban instalados y en qué hook estaban cargados.
Consulta útil:
SELECT id_module, name, active FROM ps_module WHERE name LIKE '%menu%' OR name LIKE '%mega%' OR name LIKE '%nav%' OR name LIKE '%top%' ORDER BY name;
En la tienda origen apareció ps_mainmenu, y además se confirmó que estaba asociado al hook correcto:
SELECT m.name AS modulo, h.name AS hook, hm.position FROM ps_hook_module hm JOIN ps_module m ON hm.id_module = m.id_module JOIN ps_hook h ON hm.id_hook = h.id_hook WHERE h.name IN ('displayTop', 'displayNav1', 'displayNav2', 'displayHeader', 'displayHome') ORDER BY h.name, hm.position;
Resultado relevante:
ps_mainmenuendisplayTop
En la tienda destino también existía ps_mainmenu, estaba activo y correctamente enganchado a displayTop.
Conclusión de este paso: el módulo del menú sí estaba presente y cargado correctamente.
Paso 3. Confirmar que el menú estaba apuntando a la categoría correcta
El siguiente paso fue revisar la configuración real del módulo. En PrestaShop, ps_mainmenu no siempre guarda sus valores con el nombre “MAINMENU”, sino frecuentemente con claves relacionadas con BLOCKTOPMENU.
Consulta usada:
SELECT id_configuration, id_shop_group, id_shop, name, value FROM ps_configuration WHERE name LIKE '%BLOCKTOPMENU%' ORDER BY name, id_shop_group, id_shop;
Resultado clave:
MOD_BLOCKTOPMENU_ITEMS = CMS_CAT1,CAT2,LNK1,LNK2,LNK3
Esto significaba que el menú sí estaba configurado para incluir:
- una categoría CMS,
- la categoría
CAT2(Productos), - varios enlaces personalizados.
Por tanto, el problema no estaba en que ps_mainmenu apuntara a una categoría equivocada. El menú estaba bien configurado para cargar Productos.
Conclusión de este paso: el módulo sí sabía qué categoría debía mostrar.
Paso 4. Verificar la jerarquía real del árbol de categorías
Cuando el módulo, la categoría principal y la configuración son correctos, el siguiente punto a revisar es el árbol real de categorías: padres, hijos, niveles y profundidad.
Consulta usada:
SELECT c.id_category, c.id_parent, c.level_depth, c.nleft, c.nright, c.active, cl.name FROM ps_category c LEFT JOIN ps_category_lang cl ON c.id_category = cl.id_category AND cl.id_lang = 1 ORDER BY c.id_category;
Después, para centrarse solo en las descendientes de Productos, se utilizó una consulta más precisa:
SELECT c.id_category, c.id_parent, c.level_depth, cl.name FROM ps_category c JOIN ps_category_lang cl ON c.id_category = cl.id_category AND cl.id_lang = 1 WHERE c.nleft > ( SELECT nleft FROM ps_category WHERE id_category = 2 ) AND c.nright < ( SELECT nright FROM ps_category WHERE id_category = 2 ) ORDER BY c.nleft;
Esto permitió confirmar que la jerarquía existía y era coherente. Por ejemplo:
- Productos Sanitarios colgaba de Productos
- Bebés Y Mamás colgaba de Productos
- Accesorios del Bebé colgaba de Bebés Y Mamás
- Alimentación del Bebé colgaba de Bebés Y Mamás
- Biberones, Tetinas y Vajillas colgaban de Accesorios Alimentación
Conclusión de este paso: el árbol de categorías estaba bien definido.
Paso 5. Revisar la categoría raíz y la categoría de inicio
En una clonación de PrestaShop es fundamental comprobar que la tienda mantiene correctamente sus referencias internas a la categoría raíz y a la categoría de inicio.
Consulta usada:
SELECT name, value FROM ps_configuration WHERE name IN ( 'PS_ROOT_CATEGORY', 'PS_HOME_CATEGORY', 'PS_SHOP_DEFAULT' );
Resultado:
PS_HOME_CATEGORY = 2PS_ROOT_CATEGORY = 1PS_SHOP_DEFAULT = 1
Estos valores eran coherentes con la estructura existente. Por tanto, el problema tampoco estaba ahí.
Conclusión de este paso: la raíz de catálogo era correcta.
Paso 6. Localizar el fallo real: asociaciones faltantes en ps_category_group
Una vez descartados los problemas de menú, de árbol, de jerarquía y de configuración base, quedaba revisar una parte que a menudo se pasa por alto: la asociación de categorías con grupos de clientes.
En PrestaShop, una categoría puede existir, tener padre correcto y estar incluida en el menú, pero si no está asociada a los grupos adecuados, el front-end puede no mostrarla correctamente.
Consulta usada sobre las subcategorías:
SELECT cg.id_category, cg.id_group, cl.name FROM ps_category_group cg JOIN ps_category_lang cl ON cg.id_category = cl.id_category AND cl.id_lang = 1 WHERE cg.id_category IN (10,11,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33) ORDER BY cg.id_category, cg.id_group;
En destino, esta consulta no devolvió nada.
Eso fue el punto decisivo.
La categoría principal Productos sí tenía grupos asignados, pero todas sus hijas y descendientes carecían de asociaciones en ps_category_group. En consecuencia, el menú principal podía mostrar la categoría padre, pero no construir correctamente toda la navegación secundaria y profunda.
Conclusión de este paso: el fallo real no era el menú, sino la falta de asociaciones de las subcategorías con los grupos de clientes.
Paso 7. Aplicar la corrección mínima y segura
En una migración quirúrgica no se cambia todo. Se corrige únicamente lo que falta.
Como la categoría 2 = Productos ya tenía los grupos correctos, lo más limpio era hacer que todas sus descendientes heredaran esos mismos grupos.
Consulta aplicada en destino:
INSERT IGNORE INTO ps_category_group (id_category, id_group) SELECT hijos.id_category, grupos.id_group FROM ps_category AS hijos JOIN ps_category AS padre ON padre.id_category = 2 JOIN ps_category_group AS grupos ON grupos.id_category = 2 WHERE hijos.nleft > padre.nleft AND hijos.nright < padre.nright;
Esta consulta hace exactamente lo necesario:
- localiza todas las categorías descendientes de
Productos, - toma los grupos ya asignados a la categoría padre,
- y los replica solo donde faltan.
Sin sobreescribir nada. Sin tocar categorías ajenas. Sin romper lo que ya funciona.
Ese es el espíritu correcto de una migración quirúrgica.
Paso 8. Validar el resultado
Tras aplicar la corrección, se volvió a comprobar la relación entre categorías y grupos.
Consulta de validación:
SELECT c.id_category, c.id_parent, cl.name, GROUP_CONCAT(cg.id_group ORDER BY cg.id_group SEPARATOR ',') AS grupos FROM ps_category c JOIN ps_category_lang cl ON c.id_category = cl.id_category AND cl.id_lang = 1 LEFT JOIN ps_category_group cg ON c.id_category = cg.id_category JOIN ps_category p ON p.id_category = 2 WHERE c.nleft > p.nleft AND c.nright < p.nright GROUP BY c.id_category, c.id_parent, cl.name ORDER BY c.nleft;
Después de la corrección, todas las categorías descendientes de Productos pasaron a quedar correctamente asociadas a los grupos requeridos, y el menú recuperó su comportamiento esperado.
En ese momento, tanto la tienda original como la clonada mostraban ya la misma estructura funcional en el menú de categorías.
Paso 9. Limpiar caché y comprobar el front-end
Como en cualquier intervención de PrestaShop, una vez ajustadas asociaciones o configuraciones internas, es imprescindible vaciar caché.
Dependiendo del entorno, esto puede hacerse desde el panel o directamente sobre el sistema de archivos.
En entornos gestionados por consola, suele ser recomendable limpiar:
rm -rf var/cache/prod/* rm -rf var/cache/dev/*
Después de ello, se verificó el resultado directamente en el front-end comparando ambas tiendas.
El menú Productos de la tienda clonada volvió a mostrar correctamente toda la estructura de categorías y subcategorías, ya no solo las primeras visibles, sino también niveles más profundos como:
- Bebés Y Mamás
- Accesorios del Bebé
- Accesorios Baño
- Esponjas
- Termómetro
- Chupetes
- Cadenitas
- Látex
- Silicona
- Juguetes
- Alimentación del Bebé
- Biberones
- Tetinas
- Vajillas
- 0-6 Meses
- 6-12 Meses
- 12-18 Meses
- Carne
Resultado final: el menú quedó alineado con la tienda origen.
Qué enseña este caso real
Este caso demuestra una lección importante: en PrestaShop, clonar bien no significa únicamente copiar datos visibles.
Una migración profesional exige revisar también:
- configuración de módulos,
- hooks activos,
- categorías raíz,
- relaciones jerárquicas,
- asociaciones a tienda,
- asociaciones a grupos,
- caché y comportamiento final en front-end.
Muchas incidencias no se deben a que falten productos o categorías, sino a que faltan relaciones internas que hacen posible que la tienda interprete esos datos correctamente.
En este caso, el catálogo existía. El menú también. La estructura jerárquica también. Lo que faltaba era una pieza menos visible, pero decisiva: la tabla ps_category_group.
Conclusión
La diferencia entre una clonación superficial y una migración quirúrgica está precisamente ahí.
Una clonación superficial deja una tienda que “parece funcionar”.
Una migración quirúrgica deja una tienda que funciona de verdad.
El proceso correcto no consiste en tocar módulos al azar ni en rehacer el menú desde cero sin entender qué pasa. Consiste en:
- comprobar si los datos existen,
- identificar qué elemento los consume,
- verificar si las relaciones internas son correctas,
- corregir solo lo que falta,
- validar el resultado final comparando origen y destino.
Cuando se trabaja así, incluso incidencias aparentemente complejas, como la pérdida parcial del menú de categorías tras un clonado, pueden resolverse de forma precisa, segura y sin romper nada de lo que ya estaba bien.
Si tu tienda PrestaShop ha sido clonada, migrada o actualizada y detectas fallos como menús incompletos, categorías invisibles, módulos que no cargan igual o comportamientos distintos entre origen y destino, no siempre hace falta rehacer toda la instalación. Ponte en contacto con nosotros.
En muchos casos, una revisión técnica precisa permite localizar el punto exacto del fallo y reconstruir únicamente lo necesario.
Ese es el objetivo de una migración quirúrgica: rescatar la tienda, conservar lo valioso y devolverle un funcionamiento estable, limpio y coherente.
¿Te ha servido esta guía? En ExtreHost recomendamos siempre realizar una copia de seguridad completa antes de ejecutar scripts SQL. ¡Suerte con tu migración!
Firefox Nightly se vuelve serio en entornos RPM: Mozilla apuesta por los administradores Linux
Durante años, Firefox Nightly ha sido terreno casi exclusivo de desarrolladores inquietos y testers avanzados. Instalaciones manuales, binarios descargados a mano, perfiles separados y actualizaciones poco integradas con el sistema. Todo muy nightly, sí… pero poco práctico en entornos profesionales.
Eso acaba de cambiar.
Mozilla ha dado un paso clave: repositorio RPM oficial para Firefox Nightly, pensado específicamente para distribuciones basadas en RPM como Fedora, RHEL, CentOS Stream u openSUSE. Y esto no es un simple detalle técnico: es una señal clara de hacia dónde quiere moverse Mozilla en Linux.
Nightly, pero con mentalidad de producción
Firefox Nightly sigue siendo lo que siempre ha sido:
la versión más avanzada del navegador, donde aterrizan primero las nuevas APIs, los cambios en el motor, las mejoras de rendimiento y las herramientas experimentales.
La diferencia ahora está en cómo se integra:
- Instalación y actualizaciones nativas vía DNF o Zypper
- Sin descargas manuales ni scripts externos
- Integración limpia con el sistema
- Convivencia sin conflictos con Firefox estable o ESR
En otras palabras: Nightly deja de ser un experimento aislado y empieza a comportarse como un paquete de sistema serio.
Para quienes administramos servidores, escritorios corporativos o entornos de desarrollo, esto importa (y mucho).
¿Necesitas una nueva web profesional en WordPress? En ExtreHost lo hacemos realidad
En ExtreHost ayudamos a empresas y organizaciones a renovar su presencia digital con páginas web modernas, accesibles y totalmente funcionales. Si estás pensando en lanzar una nueva web para tu negocio o modernizar la que ya tienes, esta propuesta es para ti.
🔗 Contácta con nosotros.
✔️ ¿Qué incluye nuestra propuesta?
En cada proyecto, nos comprometemos a ofrecerte un servicio completo y personalizado que te permita centrarte en tu negocio mientras nosotros nos encargamos de lo demás. Esto es lo que puedes esperar al trabajar con nosotros:
-
Diseño atractivo y moderno, adaptado a tu imagen de marca y fácil de usar para tus visitantes.
-
Maquetación profesional de todas las páginas necesarias para tu sitio, con especial cuidado en la jerarquía de la información.
-
Optimización para móviles y tablets, garantizando una experiencia fluida en cualquier dispositivo.
-
Accesibilidad real, cumpliendo los estándares necesarios para personas con discapacidad visual (WCAG 2.1 AA o superior).
-
Migración de contenido desde tu web actual o desde otros formatos si es necesario (textos, artículos, imágenes, etc.).
-
Multilingüe, si lo necesitas, gestionamos sitios en varios idiomas respetando URLs y estructura de navegación.
-
Velocidad y rendimiento optimizados, para que tu web cargue rápido y sin fallos.
-
Panel de administración claro y sencillo, para que puedas gestionar tu sitio de forma autónoma si lo deseas.
-
Asesoramiento continuo, desde el primer contacto hasta después de publicada la web.
🔧 Cómo depurar una web que va lenta usando las herramientas del navegador (Firefox, Chrome y Edge)
Depurar una web no requiere herramientas externas costosas. Los navegadores modernos como Firefox, Chrome y Edge ofrecen potentes suites de desarrollo integradas. Saber usarlas es imprescindible para detectar y solucionar errores de forma rápida, eficaz y profesional.
Cuando una página web no funciona como debería —ya sea por errores de estilo, JavaScript roto o tiempos de carga lentos—, una de las formas más rápidas y potentes de averiguar qué ocurre es usando las herramientas de desarrollo que ofrecen los navegadores modernos. En este artículo te explicamos cómo hacerlo en Firefox, Chrome y Microsoft Edge, comenzando por Firefox, nuestra opción preferida para desarrolladores exigentes.
🦊 Firefox: potencia y precisión para desarrolladores web
Firefox es uno de los navegadores más completos a nivel de herramientas de desarrollo. Para abrirlas, pulsa:
- F12, o
- Ctrl + Shift + I (Windows/Linux), o
- Cmd + Option + I (macOS)
Una vez abiertas, verás distintas pestañas. Estas son las más importantes:
El Nuevo Stack Tecnológico: Cómo la IA, el Low-Code y la Soberanía Están Redefiniendo el Futuro del Software
Europa está construyendo su propio camino hacia una tecnología más responsable y descentralizada, apoyada por talento freelance de alto nivel. Esta evolución no solo permite innovar con velocidad, sino también con criterio y sostenibilidad. Si estás buscando nuevas oportunidades, el momento de actualizarte es ahora.
El ecosistema tecnológico europeo está cambiando más rápido que nunca. Ya no se trata solo de adoptar inteligencia artificial, sino de reorganizar completamente las bases sobre las que se construyen las soluciones tecnológicas. Así lo revela el reciente informe Tech Trends 2025 publicado por Malt, el mayor marketplace freelance de Europa. En este artículo, desglosamos lo que necesitas saber sobre las nuevas tendencias, herramientas, lenguajes, amenazas y oportunidades que están marcando el camino del desarrollo y la arquitectura de software en los próximos años.
6 Razones por las que tu web ha perdido posicionamiento y tráfico en Internet
Si tu web ha perdido posicionamiento en buscadores y has notado una drástica reducción de tráfico, es momento de analizar las posibles causas. A continuación, te explicamos algunos de los motivos más comunes y cómo solucionarlos.
1. Incompatibilidades con scripts heredados
Si tu sitio web utilizó anteriormente un CMS antiguo, como por ejemplo PHPNuke o cualquier otro sistema antiguo, es posible que tengas un script de compatibilidad, debes revisarlo por si este hubiera dejado de funcionar debido a actualizaciones en la versión de PHP. Esto puede generar errores en tu web y afectar el rastreo por parte de los motores de búsqueda.
Solución: Revisa los registros de errores de tu servidor y el funcionamiento del script y asegúrate de que todos los scripts sean compatibles con la versión actual de PHP. Si es necesario, actualiza o reescribe el código.
2. Mapa del sitio desactualizado o roto
El sitemap.xml es esencial para que los motores de búsqueda indexen correctamente tu sitio. Si ha dejado de funcionar debido a una actualización o cambio en tu plataforma, Google y otros buscadores pueden tener problemas para descubrir e indexar tus páginas.
Solución: Verifica si el mapa del sitio es accesible y válido utilizando herramientas como Google Search Console. Si no es válido, genera uno nuevo y actualiza la configuración en tu archivo robots.txt.
Tutorial sobre Cómo Crear Post y Artículos en WordPress
Introducción
WordPress es una de las plataformas más populares para crear y gestionar contenido en la web. Este tutorial te guiará paso a paso en el proceso de crear posts (entradas) y artículos para tu sitio web.
Paso 1: Accede al Escritorio de WordPress
-
Ingresa a tu sitio web y dirígete al inicio de sesión. Normalmente, puedes hacerlo agregando
/wp-adminal final de tu URL. (por ejemplo.: www.misitiowp.com/wp-admin/ ) -
Inicia sesión con tu usuario y contraseña.
Paso 2: Ve a la Sección de Entradas
-
En el menú lateral izquierdo, selecciona Entradas.
-
Haz clic en Añadir nueva para crear una nueva entrada.
Feliz Nochebuena, Navidad y próspero año nuevo 2025
.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:* . . . * . . /.\ FELIZ NAVIDAD . . /..'\ . . /'.'\ Que tengáis una cena . . /.''.'\ tranquila y suenen los . . /.'.'.\ villancicos para recordar . . /'.''.'.\ Que el Salvador ha . . ^^^[_]^^^ nacido en UN portal de . . BELÉN . . . . Con Cariño: E X T R E H O S T . .:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*~*:._.:*

