How to modify path alias in Drupal 8
One option would be to create a custom route. You might need to use a different name than /node/add/ 

So in a custom module add in your_module.routing.yml

article_add:
  path: /add/article/{{ keyword }}
  defaults:
    _form: '\Drupal\your_module\Form\AddArticle::AddArticleWithYourKeyword'
  requirements:
   _permission: 'administer site configuration' 


And then create a Form in your_module/src/Form/AddArticle.php

&lt;?php

namespace Drupal\your_module\Controller;

use Drupal\Core\Controller\ControllerBase;

class AddArticle extends ControllerBase {
    public static function AddArticleWithYourKeyword($keyword) {
         //Here you can generate your form with your added keyword and return it as a render array
    }
}


This will allow you to grab a form and make edits to it, or generate an entirely custom one. In my example I made it so you pass the keyboard in the path itself not as a GET variable, but if you need you can just make the route /add/article/ and then check for GET variables inside your function.

UPDATE
Another method would be to implement the hook_form_alter function

function yourmodule_or_theme_form_node_form_alter(&amp;$form, FormStateInterface $form_state) {
$request = \Drupal::request();
$keyword       = $request-&gt;get('keyword');
  if (in_array($form['#form_id'], ['node_article_edit_form'])) {
    $form['keyword'] = [
      '#type' =&gt; 'textfield',
      '#title' =&gt; 'keyword',
      '#default_value' =&gt; $keyword,
    ];
  }
}


Not 100% sure of the syntax but that's the general idea.