Как следует из названия, мне нужен надежный SEO, и поэтому мне нужно, чтобы весь загруженный на моем сайте HTML был загружен на начальной загрузке. Однако, поскольку бэкэнд написан на PHP, и потому что было бы больше работать над написанием компонентов Vue с учетом сервера, я не хочу использовать серверную визуализацию (SSR).Есть ли рекомендуемый способ иметь все предварительно загруженные для SEO цели, используя VueJS, без использования SSR?
Это оставляет мне возможность отправлять HTML-код через провод, путь «старой школы». То, что я собираюсь сделать, это писать HTML-страницы каждой страницы, как обычно, но сделать один из элементов html root элементом Vue, чтобы «обновить» его. Таким образом, начальная загрузка загружает завершенный HTML-код, все данные (таблицы, списки и т. Д. Уже заполнены), но после загрузки всех скриптов javascript может взять на себя все, чтобы упростить работу и дать лучший интерфейс. Тем не менее, возникает несколько вопросов:
- Я ограничен одним компонентом, корень? Было бы неплохо иметь еще много субкомпонентов, каждый из которых имеет собственное состояние. Может быть, встроенные шаблоны можно каким-то образом использовать?
- Шаблоны Vue имеют собственную систему шаблонов, например, фигурные скобки для отображения переменных
{{ myVar }}
. Смогу ли я их использовать? Единственный способ, которым я могу думать, - создать шаблон Vue (который может быть загружен из внешнего скрипта), который идентичен той части HTML, которую он «берет на себя». Недостатком является то, что мне придется поддерживать этот компонент как в исходном HTML, так и в шаблоне vue.
Есть ли хорошие примеры того, что я пытаюсь выполнить здесь?
Редактировать: Я хочу уточнить, что я знаю, что могу размещать различные компоненты здесь и там на всей странице. Это все еще ставит вопрос о том, как сделать эти компоненты уже запущенными. Еще лучше было бы превратить всю страницу в Vue, как SPA.
Так вы поддерживаете две отдельные версии каждой страницы? То есть вы выполняете работу по отображению всего в .seo-zone и работе, поддерживающей компоненты vuejs, которые создают идентичный макет как содержимое всей зоны? –
Не совсем, .seo-zone обрабатывает только основные данные SEO с использованием серверных шаблонов varilables (например, php smarty, twig ..), а макет html не должен содержать компоненты vuejs, вы можете использовать h1, p и так что – hyblue
Это нехорошее решение. Отличным способом привлечения штрафа является скрытый контент SEO на странице. Даже если вы не нанесете штраф - следует отметить, что Google достаточно умен, чтобы исключить контент, который находится в блоке «display: none». – daamsie