Cuando modernizas un sitio clásico de SharePoint, la barra de navegación superior y el menú de inicio rápido a menudo desaparecen o dejan de funcionar. Los usuarios ven menús vacíos, enlaces faltantes o una estructura de sitio rota después del proceso de modernización. Esto sucede porque el proveedor de navegación clásico no se reemplaza por el proveedor de navegación moderno durante la actualización. Este artículo explica por qué se rompe la navegación y proporciona una solución paso a paso para restaurarla.
Conclusiones clave: Cómo arreglar la navegación después de la modernización de un sitio clásico
- Centro de administración de SharePoint > Centro de administración clásico de SharePoint > Colecciones de sitios: Verifica el modo de colección de sitios antes de comenzar la modernización.
- Cmdlet Enable-CommSite de PnP PowerShell: Convierte un sitio clásico modernizado en un sitio de comunicación, lo que activa el proveedor de navegación moderno.
- Configuración del sitio de SharePoint > Elementos de navegación: Activa manualmente la navegación global y la navegación actual en la configuración del sitio moderno.
Por qué la modernización de un sitio clásico rompe la navegación
Los sitios clásicos de SharePoint utilizan un sistema de navegación basado en el proveedor de Navegación estructural. Este proveedor almacena los nodos de navegación en la base de datos de contenido del sitio y los representa mediante código del lado del servidor. Cuando modernizas un sitio clásico, SharePoint elimina la página maestra clásica y los diseños de página, pero no migra automáticamente los datos de navegación al proveedor de navegación moderno. El proveedor de navegación moderno se basa en metadatos administrados (para la navegación global) y en navegación estructural (para la navegación actual), pero espera un formato de datos diferente.
El resultado es que el sitio aparece en modo de interfaz moderna, pero los elementos web de navegación no reciben datos. La barra de navegación superior no muestra enlaces, el menú de inicio rápido está vacío y los enlaces personalizados agregados en el sitio clásico desaparecen. Esto no es una corrupción de los datos de navegación originales: los datos aún existen en el almacén de navegación clásico. El problema es que el proceso de modernización no activa la conversión de esos datos al formato que espera la navegación moderna.
El papel del modo de colección de sitios
Una colección de sitios clásica conserva su modo de colección de sitios incluso después de habilitar la interfaz moderna. El modo determina qué proveedor de navegación está activo. Si el modo de colección de sitios permanece como “Experiencia clásica”, el proveedor de navegación moderno no se carga. Debes cambiar el modo de colección de sitios a “Moderno” para activar el proveedor de navegación correcto. Esta es la causa raíz de la mayoría de las roturas de navegación después de la modernización.
Pasos para restaurar la navegación después de la modernización
Sigue estos pasos en orden. No omitas el paso de PowerShell: el centro de administración por sí solo no puede cambiar el modo de colección de sitios para sitios modernizados.
- Verifica el modo actual de la colección de sitios
Ve a Centro de administración de SharePoint > Centro de administración clásico de SharePoint > Colecciones de sitios. Selecciona el sitio modernizado y observa la columna Modo de colección de sitios. Si muestra “Experiencia clásica”, la navegación no funcionará en la interfaz moderna. - Instala y conéctate a PnP PowerShell
Abre Windows PowerShell como administrador. EjecutaInstall-Module PnP.PowerShell -Scope CurrentUserpara instalar el módulo PnP. Luego conéctate a tu inquilino conConnect-PnPOnline -Url https://yourtenant.sharepoint.com/sites/yoursite -Interactive. Inicia sesión con una cuenta de administrador de SharePoint. - Convierte el sitio en un sitio de comunicación
Ejecuta el cmdletSet-PnPHomePage -SitePage Home.aspxpara establecer una página de inicio moderna. Luego ejecutaEnable-CommSite -SiteUrl https://yourtenant.sharepoint.com/sites/yoursite. Este cmdlet cambia el modo de colección de sitios a “Moderno” y activa el proveedor de navegación del sitio de comunicación. Espera 5 minutos para que el cambio se propague. - Habilita los elementos de navegación en la configuración del sitio
Ve a Configuración del sitio > Elementos de navegación (o Configuración > Navegación en la interfaz moderna). Activa Habilitar navegación global y Habilitar navegación actual. Si estas opciones faltan, la conversión del paso 3 no terminó: espera y actualiza la página. - Agrega enlaces a la navegación moderna
En Configuración del sitio > Navegación, haz clic en Agregar enlace para recrear tu estructura de navegación. Usa las mismas URL de enlace del sitio clásico. También puedes usar PnP PowerShell para agregar enlaces de navegación en masa conAdd-PnPNavigationNode -Location TopNavigationBar -Title "Link Name" -Url "https://...".
Método alternativo: Restaurar la navegación clásica temporalmente
Si necesitas la navegación clásica de inmediato mientras planificas la migración, puedes revertir el sitio al modo clásico. Ve a Configuración del sitio > Características de la colección de sitios y desactiva la característica Experiencia de interfaz moderna. Esto restaura la página maestra clásica y la navegación anterior. Esta es una solución temporal: el sitio perderá las características de la interfaz moderna, como la biblioteca de páginas moderna.
Si la navegación aún tiene problemas después de la solución principal
La barra de navegación superior solo muestra “Inicio” después de la conversión
Esto sucede cuando la conversión del sitio se realizó correctamente pero no se migraron nodos de navegación. El proveedor de navegación moderno comienza vacío. Usa los pasos del método 1 para agregar enlaces manualmente o mediante PowerShell. También puedes usar Get-PnPNavigationNode -Location TopNavigationBar para verificar los nodos existentes.
El menú de inicio rápido falta por completo
El menú de inicio rápido en los sitios modernos se llama navegación actual. Si falta, ve a Configuración del sitio > Elementos de navegación y asegúrate de que Habilitar navegación actual esté activado. Si ya está activado, ejecuta Repair-SPOSite -Identity https://yourtenant.sharepoint.com/sites/yoursite en SharePoint Online Management Shell para reparar la infraestructura de navegación del sitio.
Scripts personalizados y enlaces de navegación bloqueados
Los sitios clásicos a menudo usan JavaScript personalizado para modificar la navegación. Los sitios modernos bloquean los scripts personalizados por defecto. Si tu navegación dependía de la inyección de scripts, esos scripts no se ejecutarán. Elimina las dependencias de scripts personalizados y usa la configuración de navegación nativa en su lugar. Puedes habilitar scripts personalizados a nivel de inquilino en Centro de administración de SharePoint > Configuración > Script personalizado, pero esto no se recomienda por razones de seguridad.
Navegación clásica vs. Navegación moderna: diferencias clave
| Elemento | Navegación clásica | Navegación moderna |
|---|---|---|
| Almacenamiento de datos | Base de datos de contenido (nodos estructurales) | Servicio de metadatos administrados o nodos estructurales a nivel de sitio |
| Método de representación | Página maestra del lado del servidor (v4.master) | Elementos web del lado del cliente (TopNavigationBar, QuickLaunch) |
| Soporte de scripts personalizados | Soporte completo mediante el elemento web Editor de scripts | Bloqueado por defecto; usa extensiones de SharePoint Framework |
| Número máximo de enlaces | Sin límite impuesto (el rendimiento degrada después de ~100) | Hasta 200 enlaces por nivel de navegación |
| Modo de colección de sitios requerido | Experiencia clásica | Experiencia moderna (sitio de comunicación) |
Después de completar los pasos anteriores, tu sitio modernizado tendrá una barra de navegación funcional con los mismos enlaces que tenías en el sitio clásico. Prueba la navegación en algunas páginas para asegurarte de que todos los enlaces se resuelvan correctamente. Para estructuras de navegación grandes, usa PnP PowerShell para exportar los nodos de navegación clásicos con Get-PnPNavigationNode -Location QuickLaunch e importarlos en el sitio moderno. Esto ahorra tiempo en comparación con la entrada manual de enlaces.