Комбинированный поиск и ~1млн новых страниц для поисковых систем

Регистрация
15 Дек 2017
Сообщения
5,067
#1
Добалены «Теги» в информацию каждого фильма.

tags.png

format.png

В шаблон (/thems/название/views/movie.ejs) добавляется так:
<% if (movie.tags_url) { %><%- page.l.tags %> <%- movie.tags_url %><% } %>

Благодаря таким мульти-категориям можно добавить в индекс поисковых систем больше 1 млн страниц.

2 типа * 31 жанр * 100 годов * 193 страны = 1 196 600 страниц

Если Вы не хотите видеть в поиске эти страницы, добавьте в robots.txt
Код:
Disallow: /*?year*
Disallow: /*?genre*
Disallow: /*?country*
Так же был изменён транслит категорий, вместо «голого» дефиса перед названием /genre/-komediya теперь указывается первая буква категории, к которой он относится, т.е. /genre/g-komediya. При активированном модуле Микроразметки, поисковые системы через rel=canonical будут знать какой формат основной, потому проблем с дублями быть не должно.
 
Енот
Новичо́к, через «о́»
Регистрация
24 Окт 2019
Сообщения
154
#2
отлично! огромное спасибо!
 
Енот
Новичо́к, через «о́»
Регистрация
24 Окт 2019
Сообщения
154
#3
почему-то при добавлении <% if (movie.tags_url) %><%- page.l.tags %> <%- movie.tags_url %><% } %> на страницу валится шаблон , теги где-то в админке надо включать или все должно работать , билд синемапресс4 , неделю назад билд

если не сложно прикрепите ejs шаблончик

и подскажите на какой странице админки искать то что у вас на втором скрине отображено.
 
Енот
Новичо́к, через «о́»
Регистрация
24 Окт 2019
Сообщения
154
#5
обновил билд , теги отображаются , однако если пишешь условием <% if (movie.tags_url) %> , то валится шаблон, не отображается, если убрать условие и оставить <%- movie.tags_url %> можно и название <%- page.l.tags %> , то все отображается.

Без названия (1).png

вот собственно вопрос , может ли некорректно работать данное условие , если кажем изменены дефолтные урлы сайта.

к примеру
domain.tv/video-12345 - страница просмотра контента
domain.tv/films-фантастика - список контента

и попутный вопрос , где можно в рерайтах при двухуровневой системе линок , убрать тип категорий

domain.tv/category-Криминал , оставить только
/Криминал - страница категорий фильма
/type-Фильмы - страница типа категории фильмы , сделать /фильмы
/type-Сериалы - страница типа категории сериалы, сделать /сериалы
вот тут везде утрать category , и type . те чтобы не было принадлежности, при условии что категории не будут повторяться в разных типах.
если оставить в админке пустые поля в настройке урлов - не помогает , вставляется дефолтное значение. и тире , оно видно где то в реврайтах дописывается.

Без названия.png

и по поводу урлов , генерится тег с урлом /type-Фильмы?genre=фантастика , переходим на эту страницу , а тег <%- page.h1 %> бьет просто название типа категории (фильмы ) а надо чтобы выводился , фильмы фантастика , по тегу type-Фильмы?year=2019&genre=боевик , соответственно фильмы боевик 2019

и отдельное спасибо за проделанную работу!
 
Последнее редактирование:
Регистрация
15 Дек 2017
Сообщения
5,067
#6
вот собственно вопрос , может ли некорректно работать данное условие , если кажем изменены дефолтные урлы сайта.
Была ошибка в коде, потерялась открывающая скобка: <% if (movie.tags_url) { %>
и попутный вопрос , где можно в рерайтах при двухуровневой системе линок , убрать тип категорий
Можно сделать такие ссылки, но они будут только для основной страницы категории и они не будут каноническими.
Например так, в /routes/website.js категория попадёт в переменную level1. Вам нужно переместить её в level2, и сказать к какому типу она относится в level1.
Перед var template = setTemplate(); добавить:
JavaScript:
['Криминал', 'Фантастика'].forEach(function(t) {
    if (level1 === t) {
        level2 = level1;
        level1 = config.urls.genre;
    }
});
и по поводу урлов , генерится тег с урлом /type-Фильмы?genre=фантастика , переходим на эту страницу , а тег <%- page.h1 %> бьет просто название типа категории (фильмы )
В настройках H1 для Типов пропишите [Type] [year] [genre] [country]
[Type] - можно задавать с большой буквы, тогда будет Фильмы или [type] - фильмы.
 
Енот
Новичо́к, через «о́»
Регистрация
24 Окт 2019
Сообщения
154
#7
большое спасибо , условие работает ) да был синтаксис.

по поводу тайтла страницы с видео ( при переходе с тега ) в вашем примере , все отображается как на теге. - значит проблема у нас. поправим.

по поводу разделителя тегов , у меня появляется после каждой ссылки " , " запятая , у вас же на шаблоне в коде ее нет. как исключить из массива элементов тегов вывод этих разделителей. или это на цсс написать лучше.
 
Регистрация
15 Дек 2017
Сообщения
5,067
#8
по поводу разделителя тегов , у меня появляется после каждой ссылки " , " запятая , у вас же на шаблоне в коде ее нет. как исключить из массива элементов тегов вывод этих разделителей. или это на цсс написать лучше.
Это шаблон Arya: https://github.com/CinemaPress/Theme-Arya/blob/master/views/movie.ejs

<%- movie.tags_url.replace(/(,\s|\sи\s)/g, ' ') %>
 
Енот
Новичо́к, через «о́»
Регистрация
29 Сен 2019
Сообщения
301
#9
Енот
Новичо́к, через «о́»
Регистрация
17 Июн 2019
Сообщения
87
#10
Я не совсем понял сути, типо 1 фильм будет в куче разных категорий? (Т.е. site.com/2001/film | site.com/komedia/film), эти же страницы просто как дубли пойдут и все, еще и основную могут под гребенку забрать, или я что-то не так понял?)
 
Енот
Новичо́к, через «о́»
Регистрация
24 Окт 2019
Сообщения
154
#11
Огромное спасибо за автокомплит в новой версии ! он просто супер и легко кастомизируется ;)
 
Енот
Новичо́к, через «о́»
Регистрация
24 Окт 2019
Сообщения
154
#13
в форме поиска у вас есть такой тег <div class="cinemapress-autocomplete" data-autocomplete="desktop"></div> , вот это див и выводит подсказки , если есть совпадение по названию.

если совпадение есть появляется вот такой код.
HTML:
                    <div class="cinemapress-autocomplete" data-autocomplete="desktop" style="display: block;">
                        <ul>
                            <li data-url="http://kinobaza.online/video-0505898">
                                <img src="http://k.1poster.net/images/film_iphone/iphone90_505898.jpg" alt="Poster">
                                <p><strong>Аватар 2</strong><br><span>США | фантастика</span><br><i>2021</i></p>
                            </li>
                            <li data-url="http://kinobaza.online/video-0570402">
                                <img src="http://k.1poster.net/images/film_iphone/iphone90_570402.jpg" alt="Poster">
                                <p><strong>Аватар 3</strong><br><span>США | фантастика</span><br><i>2023</i></p>
                            </li>
                        </ul>
                        <div>Все результаты</div>
                    </div>
как видно из кода , там скрин видео , тайтл . страна и жанр и год. и под результатами все результаты , которая ведет на выдачу поиска нашего сайта. если же кликать по лишке с фильмом то переход сразу на фильм, чтобы было все красиво надо стилизовать на цсс, и не забывайте сделать cursor: pointer на лишки и дивы ) ховеры на лишки тоже по желанию.

!подсказка выводится только по совпадению с названием фильма в базе, если вписать АВАТА место АВАТАР она не покажется. Я так думаю чтобы сфинкс не нагружать так реализовали.
 
Регистрация
15 Дек 2017
Сообщения
5,067
#14
Я не совсем понял сути, типо 1 фильм будет в куче разных категорий? (Т.е. site.com/2001/film | site.com/komedia/film), эти же страницы просто как дубли пойдут и все, еще и основную могут под гребенку забрать, или я что-то не так понял?)
Полная аналогия с категориями, но + дополнительные условия фильтрации фильмов в каждой категории.
 
Енот
Новичо́к, через «о́»
Регистрация
24 Окт 2019
Сообщения
154
#15
напомните плз перегружать скрипт нужно после редактирования /routes/website.js
 
Енот
Новичо́к, через «о́»
Регистрация
24 Окт 2019
Сообщения
154
#17
добавил в роуты код и потестировал на типах и на жанрах ,

Код:
['Криминал', 'Фантастика'].forEach(function(t) {
    if (level1 === t) {
        level2 = level1;
        level1 = config.urls.genre;
    }
});
['Фильмы', 'Сериалы', 'Мультфильмы', 'ТВ'].forEach(function(t) {
    if (level1 === t) {
        level2 = level1;
        level1 = config.urls.type;
    }
});
  var template = setTemplate();
поведение такое , вводим domain.tv/Фантастика , страница существует , однако редирект на /category-Фантастика
с типами тоже самое domain.tv/Фильмы редирект на domain.tv/type-Фильмы
возможно это и не редирект , но после ввода , урл меняется на такой.

Задача была сделать таким образом , чтобы работали и страницы , и менюшки генерировали новые короткие урлы теги аналоги <%- genre.url %> <%- page.urls.type %> , в противном случае получается что по сайту обмен короткими линками идет по интерфейсу, а в адресной строке отличный адрес от того на который кликнули, да и пользователям в конечном итоге удобнее , domain.tv/жанр легче запоминается.

либо второй вариант переименовать тип "type" в "t" и получим /t-Категория но тоже не очень удобно
 
Регистрация
15 Дек 2017
Сообщения
5,067
#18
поведение такое , вводим domain.tv/Фантастика , страница существует , однако редирект на /category-Фантастика
Вот где проверка на соответствие формата и redirect (/routes/website.js).

redirect.png
 
Енот
Новичо́к, через «о́»
Регистрация
24 Окт 2019
Сообщения
154
#19
выводится только по совпадению с названием фильма в базе, если вписать АВАТА место АВАТАР она не покажется. Я так думаю чтобы сфинкс не нагружать так реализовали
дополнение : если фильм "Капитан Марвел" , то подсказка с фильмом в автокомплите отобразится при "Капитан"
 
Регистрация
15 Дек 2017
Сообщения
5,067
#20
дополнение : если фильм "Капитан Марвел" , то подсказка с фильмом в автокомплите отобразится при "Капитан"
Поиск игнорирует склонения, но хотя бы одно слово в поиске должно быть введено.